diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/reconcilers/PreciseBeanTypeReconciler.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/reconcilers/PreciseBeanTypeReconciler.java index 7858e1660..9b638df51 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/reconcilers/PreciseBeanTypeReconciler.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/reconcilers/PreciseBeanTypeReconciler.java @@ -20,6 +20,7 @@ import java.util.ListIterator; import org.eclipse.jdt.core.dom.ASTVisitor; import org.eclipse.jdt.core.dom.CompilationUnit; +import org.eclipse.jdt.core.dom.Expression; import org.eclipse.jdt.core.dom.IMethodBinding; import org.eclipse.jdt.core.dom.ITypeBinding; import org.eclipse.jdt.core.dom.MethodDeclaration; @@ -116,7 +117,16 @@ public class PreciseBeanTypeReconciler implements JdtAstReconciler { @Override public boolean visit(ReturnStatement node) { - ITypeBinding type = node.getExpression().resolveTypeBinding(); + Expression expression = node.getExpression(); + if (expression == null) { + return super.visit(node); + } + + ITypeBinding type = expression.resolveTypeBinding(); + if (type == null) { + return super.visit(node); + } + if (currentReturnTypes.isEmpty()) { currentReturnTypes.add(type); } else {