From a80361231a0ac779358a8883959e73d57a456f93 Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Wed, 10 Feb 2021 12:10:21 +0100 Subject: [PATCH] alllow project finder to be null - for test case setups --- .../boot/java/utils/CompilationUnitCache.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java index 9fdadd903..c994e2439 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java @@ -91,18 +91,19 @@ public final class CompilationUnitCache implements DocumentContentProvider { // IMPORTANT ===> these notifications arrive within the lsp message loop, so reactions to them have to be fast // and not be blocked by waiting for anything - if (documentService != null) { - documentService.onDidChangeContent(doc -> invalidateCuForJavaFile(doc.getDocument().getId().getUri())); - documentService.onDidClose(doc -> invalidateCuForJavaFile(doc.getId().getUri())); + if (this.documentService != null) { + this.documentService.onDidChangeContent(doc -> invalidateCuForJavaFile(doc.getDocument().getId().getUri())); + this.documentService.onDidClose(doc -> invalidateCuForJavaFile(doc.getId().getUri())); } - for (IJavaProject project : projectFinder.all()) { - logger.info("CU Cache: initial lookup env creation for project <{}>", project.getElementName()); - loadLookupEnvTuple(project); + if (this.projectFinder != null) { + for (IJavaProject project : this.projectFinder.all()) { + logger.info("CU Cache: initial lookup env creation for project <{}>", project.getElementName()); + loadLookupEnvTuple(project); + } } - - projectListener = new ProjectObserver.Listener() { + this.projectListener = new ProjectObserver.Listener() { @Override public void deleted(IJavaProject project) { @@ -149,14 +150,14 @@ public final class CompilationUnitCache implements DocumentContentProvider { }; if (this.projectObserver != null) { - this.projectObserver.addListener(projectListener); + this.projectObserver.addListener(this.projectListener); } } public void dispose() { - if (projectObserver != null) { - projectObserver.removeListener(projectListener); + if (this.projectObserver != null) { + this.projectObserver.removeListener(this.projectListener); } } @@ -170,7 +171,8 @@ public final class CompilationUnitCache implements DocumentContentProvider { */ @Deprecated public T withCompilationUnit(TextDocument document, Function requestor) { - IJavaProject project = projectFinder.find(document.getId()).orElse(null); + IJavaProject project = this.projectFinder != null ? projectFinder.find(document.getId()).orElse(null) : null; + URI uri = URI.create(document.getUri()); return withCompilationUnit(project, uri, requestor); }