Skip to content

Commit 5ab0147

Browse files
committed
Fix possible ClassCastException and cleanup warnings in NoRequestMappingAnnotation
1 parent 9366e4b commit 5ab0147

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

src/main/java/org/openrewrite/java/spring/NoRequestMappingAnnotation.java

+16-10
Original file line numberDiff line numberDiff line change
@@ -92,19 +92,17 @@ public J.Annotation visitAnnotation(J.Annotation annotation, ExecutionContext ct
9292
requestType.ifPresent(requestMethod -> maybeRemoveImport("org.springframework.web.bind.annotation.RequestMethod." + requestMethod));
9393

9494
// Remove the argument
95-
if (requestMethodArg.isPresent() && methodArgumentHasSingleType(requestMethodArg.get()) && resolvedRequestMappingAnnotationClassName != null) {
95+
if (methodArgumentHasSingleType(requestMethodArg.get())) {
9696
if (a.getArguments() != null) {
9797
a = a.withArguments(ListUtils.map(a.getArguments(), arg -> requestMethodArg.get().equals(arg) ? null : arg));
9898
}
9999
}
100100

101101
// Change the Annotation Type
102-
if (resolvedRequestMappingAnnotationClassName != null) {
103-
maybeAddImport("org.springframework.web.bind.annotation." + resolvedRequestMappingAnnotationClassName);
104-
a = (J.Annotation) new ChangeType("org.springframework.web.bind.annotation.RequestMapping",
105-
"org.springframework.web.bind.annotation." + resolvedRequestMappingAnnotationClassName, false)
106-
.getVisitor().visit(a, ctx, getCursor());
107-
}
102+
maybeAddImport("org.springframework.web.bind.annotation." + resolvedRequestMappingAnnotationClassName);
103+
a = (J.Annotation) new ChangeType("org.springframework.web.bind.annotation.RequestMapping",
104+
"org.springframework.web.bind.annotation." + resolvedRequestMappingAnnotationClassName, false)
105+
.getVisitor().visit(a, ctx, getCursor());
108106

109107
// if there is only one remaining argument now, and it is "path" or "value", then we can drop the key name
110108
if (a != null && a.getArguments() != null && a.getArguments().size() == 1) {
@@ -142,15 +140,23 @@ private boolean methodArgumentHasSingleType(J.Assignment assignment) {
142140
return newArray.getInitializer() != null && newArray.getInitializer().size() == 1;
143141
}
144142

143+
@Nullable
145144
private String requestMethodType(@Nullable J.Assignment assignment) {
145+
if(assignment == null) {
146+
return null;
147+
}
146148
if (assignment.getAssignment() instanceof J.Identifier) {
147149
return ((J.Identifier) assignment.getAssignment()).getSimpleName();
148150
} else if (assignment.getAssignment() instanceof J.FieldAccess) {
149151
return ((J.FieldAccess) assignment.getAssignment()).getSimpleName();
150152
} else if (methodArgumentHasSingleType(assignment)) {
151-
J.NewArray newArray = (J.NewArray) assignment.getAssignment();
152-
assert newArray.getInitializer() != null;
153-
return ((J.FieldAccess) newArray.getInitializer().get(0)).getSimpleName();
153+
if(assignment.getAssignment() instanceof J.NewArray) {
154+
J.NewArray newArray = (J.NewArray) assignment.getAssignment();
155+
assert newArray.getInitializer() != null;
156+
return ((J.FieldAccess) newArray.getInitializer().get(0)).getSimpleName();
157+
} else if(assignment.getAssignment() instanceof J.Identifier) {
158+
return ((J.Identifier) assignment.getAssignment()).getSimpleName();
159+
}
154160
}
155161
return null;
156162
}

0 commit comments

Comments
 (0)