diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteCompilationUnitCache.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteCompilationUnitCache.java index 1013c607a..4a9185039 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteCompilationUnitCache.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteCompilationUnitCache.java @@ -219,7 +219,7 @@ public class RewriteCompilationUnitCache implements DocumentContentProvider, Dis synchronized (URI_TO_CU_LOCK) { return uriToCu.get(uri, () -> { logger.debug("Parsing CU {}", uri); - JavaParser javaParser = loadJavaParser(project); + JavaParser javaParser = /*loadJavaParser(project)*/createJavaParser(project); Input input = new Input(Paths.get(uri), () -> { try { return new ByteArrayInputStream(fetchContent(uri).getBytes()); @@ -228,13 +228,18 @@ public class RewriteCompilationUnitCache implements DocumentContentProvider, Dis } }); - List cus = ORAstUtils.parseInputs(javaParser, List.of(input)); - - CompilationUnit cu = cus.get(0); - - - if (cu != null) { - projectToDocs.get(project, () -> new HashSet<>()).add(uri); + CompilationUnit cu = null; + try { + List cus = ORAstUtils.parseInputs(javaParser, List.of(input)); + + cu = cus.get(0); + + + if (cu != null) { + projectToDocs.get(project, () -> new HashSet<>()).add(uri); + } + } catch (Exception e) { + // ignore rewrite parse errors } return cu; diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteRecipeRepository.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteRecipeRepository.java index 7a352e4e4..213afa92a 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteRecipeRepository.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteRecipeRepository.java @@ -223,7 +223,13 @@ public class RewriteRecipeRepository { server.onCommand("sts/rewrite/list", params -> { JsonElement uri = (JsonElement) params.getArguments().get(0); - return CompletableFuture.completedFuture(uri == null ? Collections.emptyList() : listProjectRefactoringRecipes(uri.getAsString()).stream().map(RewriteRecipeRepository::recipeToJson).collect(Collectors.toList())); + return loaded.thenApply(v -> { + if (uri == null) { + return Collections.emptyList(); + } else { + return listProjectRefactoringRecipes(uri.getAsString()).stream().map(RewriteRecipeRepository::recipeToJson).collect(Collectors.toList()); + } + }); }); listBuilder.add("sts/rewrite/list");