diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/.classpath b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/.classpath
index eca7bdba8..43b986286 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/.classpath
+++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/.classpath
@@ -3,5 +3,5 @@
-
+
diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaHoverProvider.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaHoverProvider.java
index 3d19288d1..c720759ba 100644
--- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaHoverProvider.java
+++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaHoverProvider.java
@@ -14,6 +14,7 @@ import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Stream;
@@ -83,51 +84,52 @@ public class BootJavaHoverProvider implements HoverHandler {
public Range[] getLiveHoverHints(final TextDocument document, final SpringBootApp[] runningBootApps) {
List result = new ArrayList<>();
- try {
- IJavaProject project = getProject(document);
- CompilationUnit cu = parse(document, project);
- cu.accept(new ASTVisitor() {
- @Override
- public boolean visit(SingleMemberAnnotation node) {
- try {
- extractLiveHints(node, document, runningBootApps, result);
- }
- catch (Exception e) {
- Log.log(e);
+ getProject(document).ifPresent(project -> {
+ try {
+ CompilationUnit cu = parse(document, project);
+
+ cu.accept(new ASTVisitor() {
+ @Override
+ public boolean visit(SingleMemberAnnotation node) {
+ try {
+ extractLiveHints(node, document, runningBootApps, result);
+ }
+ catch (Exception e) {
+ Log.log(e);
+ }
+
+ return super.visit(node);
}
- return super.visit(node);
- }
+ @Override
+ public boolean visit(NormalAnnotation node) {
+ try {
+ extractLiveHints(node, document, runningBootApps, result);
+ }
+ catch (Exception e) {
+ Log.log(e);
+ }
- @Override
- public boolean visit(NormalAnnotation node) {
- try {
- extractLiveHints(node, document, runningBootApps, result);
- }
- catch (Exception e) {
- Log.log(e);
+ return super.visit(node);
}
- return super.visit(node);
- }
+ @Override
+ public boolean visit(MarkerAnnotation node) {
+ try {
+ extractLiveHints(node, document, runningBootApps, result);
+ }
+ catch (Exception e) {
+ Log.log(e);
+ }
- @Override
- public boolean visit(MarkerAnnotation node) {
- try {
- extractLiveHints(node, document, runningBootApps, result);
+ return super.visit(node);
}
- catch (Exception e) {
- Log.log(e);
- }
-
- return super.visit(node);
- }
- });
- }
- catch (Exception e) {
- Log.log(e);
- }
+ });
+ } catch (Exception e) {
+ Log.log(e);
+ }
+ });
return result.toArray(new Range[result.size()]);
}
@@ -149,16 +151,14 @@ public class BootJavaHoverProvider implements HoverHandler {
}
private CompletableFuture provideHover(TextDocument document, int offset) throws Exception {
- IJavaProject project = getProject(document);
- CompilationUnit cu = parse(document, project);
-
- ASTNode node = NodeFinder.perform(cu, offset, 0);
-
- if (node != null) {
- System.out.println("AST node found: " + node.getClass().getName());
- return provideHoverForAnnotation(node, offset, document, project);
+ IJavaProject project = getProject(document).orElse(null);
+ if (project!=null) {
+ CompilationUnit cu = parse(document, project);
+ ASTNode node = NodeFinder.perform(cu, offset, 0);
+ if (node != null) {
+ return provideHoverForAnnotation(node, offset, document, project);
+ }
}
-
return null;
}
@@ -211,8 +211,8 @@ public class BootJavaHoverProvider implements HoverHandler {
return null;
}
- private IJavaProject getProject(IDocument doc) throws Exception {
- return this.projectFinder.find(new TextDocumentIdentifier(doc.getUri())).get();
+ private Optional getProject(IDocument doc) {
+ return this.projectFinder.find(new TextDocumentIdentifier(doc.getUri()));
}
private String[] getClasspathEntries(IJavaProject project) throws Exception {