From cf0db57b802e677a44c1d55286970ac203725fb1 Mon Sep 17 00:00:00 2001 From: aboyko Date: Wed, 14 Dec 2022 13:28:15 -0500 Subject: [PATCH] Reduce number of project reconcile requests --- .../boot/app/BootLanguageServerInitializer.java | 11 ++++++----- .../ide/vscode/boot/app/BootVersionValidator.java | 2 +- .../vscode/boot/java/rewrite/RewriteReconciler.java | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerInitializer.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerInitializer.java index 9a6953006..72de10422 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerInitializer.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerInitializer.java @@ -220,13 +220,14 @@ public class BootLanguageServerInitializer implements InitializingBean { doNotValidateProject(project, true); - projectReconcileRequests.put(uri, Mono.delay(Duration.ofMillis(100)) + projectReconcileRequests.put(uri, Mono.delay(Duration.ofMillis(500)) .publishOn(projectReconcileScheduler) .doOnSuccess(l -> { - projectReconcileRequests.remove(uri); - projectFinder.find(new TextDocumentIdentifier(uri.toString())).ifPresent(p -> { - projectReconciler.reconcile(p, doc -> server.createProblemCollector(doc)); - }); + if (projectReconcileRequests.remove(uri) != null) { + projectFinder.find(new TextDocumentIdentifier(uri.toString())).ifPresent(p -> { + projectReconciler.reconcile(p, doc -> server.createProblemCollector(doc)); + }); + } }) .subscribe()); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootVersionValidator.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootVersionValidator.java index 507cb492b..8e4221aca 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootVersionValidator.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootVersionValidator.java @@ -39,7 +39,7 @@ public class BootVersionValidator { public void validate(IJavaProject project) { if (config.isBootVersionValidationEnabled()) { - log.info("Validating Spring Boot version on project: " + project.getElementName()); + log.debug("Validating Spring Boot version on project: " + project.getElementName()); VersionValidationPreferences preferences = new VersionValidationPreferences(); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteReconciler.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteReconciler.java index ad52fe640..8e066dc4f 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteReconciler.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteReconciler.java @@ -138,6 +138,7 @@ public class RewriteReconciler implements JavaReconciler { @Override public Map> reconcile(IJavaProject project, List docs, Function problemCollectorFactory) { + log.info("Validating project " + project.getElementName()); Map> allProblems = new HashMap<>(); List testSourceFolders = IClasspathUtil.getProjectTestJavaSources(project.getClasspath()).map(f -> f.toPath()).collect(Collectors.toList()); List testSources = new ArrayList<>(docs.size()); @@ -233,7 +234,6 @@ public class RewriteReconciler implements JavaReconciler { private Map> doReconcile(IJavaProject project, List docs, Function problemCollectorFactory, JavaParser javaParser) { Map> allProblems = new HashMap<>(); - if (javaParser != null && config.isRewriteReconcileEnabled()) { try { List descriptors = getProblemRecipeDescriptors(project);