From 72fe640c9fd83de026879d7f5c6152d04e8cef54 Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Fri, 10 Aug 2018 13:54:53 +0200 Subject: [PATCH] avoid NPE case when type binding get be resolved for request mapping methods --- .../RequestMappingHoverProvider.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/RequestMappingHoverProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/RequestMappingHoverProvider.java index 652375180..7ce329e24 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/RequestMappingHoverProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/RequestMappingHoverProvider.java @@ -131,12 +131,14 @@ public class RequestMappingHoverProvider implements HoverProvider { if (parent instanceof MethodDeclaration) { MethodDeclaration methodDec = (MethodDeclaration) parent; IMethodBinding binding = methodDec.resolveBinding(); - return binding.getDeclaringClass().getQualifiedName().equals(rqClassName) - && binding.getName().equals(rm.getMethodName()) - && Arrays.equals(Arrays.stream(binding.getParameterTypes()) - .map(t -> t.getTypeDeclaration().getQualifiedName()) - .toArray(String[]::new), - rm.getMethodParameters()); + if (binding != null) { + return binding.getDeclaringClass().getQualifiedName().equals(rqClassName) + && binding.getName().equals(rm.getMethodName()) + && Arrays.equals(Arrays.stream(binding.getParameterTypes()) + .map(t -> t.getTypeDeclaration().getQualifiedName()) + .toArray(String[]::new), + rm.getMethodParameters()); + } // } else if (parent instanceof TypeDeclaration) { // TypeDeclaration typeDec = (TypeDeclaration) parent; // return typeDec.resolveBinding().getQualifiedName().equals(rqClassName);