diff --git a/components/sbm-core/src/main/java/org/springframework/sbm/java/impl/OpenRewriteMethod.java b/components/sbm-core/src/main/java/org/springframework/sbm/java/impl/OpenRewriteMethod.java index abaa214d1..6b9a80f28 100644 --- a/components/sbm-core/src/main/java/org/springframework/sbm/java/impl/OpenRewriteMethod.java +++ b/components/sbm-core/src/main/java/org/springframework/sbm/java/impl/OpenRewriteMethod.java @@ -164,7 +164,12 @@ public Optional getReturnValue() { return Optional.empty(); } - return Optional.of(TypeUtils.asFullyQualified(returnTypeExpression.getType()).getFullyQualifiedName()); + JavaType.FullyQualified jfq = TypeUtils.asFullyQualified(returnTypeExpression.getType()); + if (jfq == null) { + return Optional.empty(); + } else { + return Optional.of(jfq.getFullyQualifiedName()); + } } // FIXME: renaming method should not require a methodPattern in this context diff --git a/components/sbm-support-boot/src/test/java/org/springframework/sbm/boot/common/finder/SpringBeanMethodDeclarationFinderTest.java b/components/sbm-support-boot/src/test/java/org/springframework/sbm/boot/common/finder/SpringBeanMethodDeclarationFinderTest.java index 59ecb8c3f..1f32501ff 100644 --- a/components/sbm-support-boot/src/test/java/org/springframework/sbm/boot/common/finder/SpringBeanMethodDeclarationFinderTest.java +++ b/components/sbm-support-boot/src/test/java/org/springframework/sbm/boot/common/finder/SpringBeanMethodDeclarationFinderTest.java @@ -190,4 +190,32 @@ void someBean() { } } + @Nested + class WithUnresolvedSymbols { + @Test + void shouldIgnoreClassesWhenSymbolsCantBeResolved() { + + SpringBeanMethodDeclarationFinder sut + = new SpringBeanMethodDeclarationFinder("a.b.c.HelloWorld"); + builder.addJavaSource("src/main/java", + """ + import org.springframework.context.annotation.Configuration; + import org.springframework.context.annotation.Bean; + import a.b.c.HelloWorld; + @Configuration + public class MyConfiguration { + @Bean + HelloWorld someBean() { + return null; + } + } + """ + ) + .withBuildFileHavingDependencies("org.springframework:spring-context:5.3.22"); + + + List output = builder.build().search(sut); + assertThat(output).hasSize(0); + } + } }