From d03ac9192b2eebd4d88e06e6c1234653b6bc8508 Mon Sep 17 00:00:00 2001 From: aboyko Date: Tue, 11 Apr 2023 13:22:38 -0400 Subject: [PATCH] Logging to track classpath listener add/remove issues --- .../vscode/boot/jdt/ls/JdtLsProjectCache.java | 27 +++++++++---------- .../src/main/resources/application.properties | 1 - 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/jdt/ls/JdtLsProjectCache.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/jdt/ls/JdtLsProjectCache.java index da27cad94..a550dae7e 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/jdt/ls/JdtLsProjectCache.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/jdt/ls/JdtLsProjectCache.java @@ -109,7 +109,7 @@ public class JdtLsProjectCache implements InitializableJavaProjectsService, Serv public void addListener(Listener listener) { synchronized (listeners) { listeners.add(listener); - log.info("added listener - now listeners registered: " + listeners.size()); + log.debug("added listener - now listeners registered: " + listeners.size()); } } @@ -117,7 +117,7 @@ public class JdtLsProjectCache implements InitializableJavaProjectsService, Serv public void removeListener(Listener listener) { synchronized (listeners) { listeners.remove(listener); - log.info("removed listener - now listeners registered: " + listeners.size()); + log.debug("removed listener - now listeners registered: " + listeners.size()); } } @@ -125,14 +125,14 @@ public class JdtLsProjectCache implements InitializableJavaProjectsService, Serv logEvent("Created", newProject); synchronized (listeners) { - log.info("listeners registered: " + listeners.size()); + log.debug("listeners registered: " + listeners.size()); for (Listener listener : listeners) { try { listener.created(newProject); } catch (Exception e) { - log.info("listener caused exception: " + e); + log.debug("listener caused exception: " + e); } } } @@ -170,8 +170,8 @@ public class JdtLsProjectCache implements InitializableJavaProjectsService, Serv private void logEvent(String type, IJavaProject project) { try { - log.info("Project {}: {}", type, project.getLocationUri()); - log.info("Classpath has {} entries", project.getClasspath().getClasspathEntries().size()); + log.debug("Project {}: {}", type, project.getLocationUri()); + log.debug("Classpath has {} entries", project.getClasspath().getClasspathEntries().size()); if (log.isDebugEnabled()) { //Avoid expensive call to countSourceAttachements if possible. log.debug("Classpath has {} source attachements", countSourceAttachments(project.getClasspath().getClasspathEntries())); @@ -258,21 +258,22 @@ public class JdtLsProjectCache implements InitializableJavaProjectsService, Serv @Override public Mono initialize() { return Mono.defer(() -> { - log.debug("ADD CLASSPATH LISTENER enableClasspath=" + initialClasspathLisetnerEnable); + log.info("INIT CLASSPATH LISTENER enableClasspath=" + initialClasspathLisetnerEnable); enableClasspathListener(initialClasspathLisetnerEnable); return Mono.just(DISPOSABLE); }); } private synchronized void enableClasspathListener(boolean enabled) { + log.info("Enable classpath listener enabled = " + enabled + " current enablement = " + classpathListenerEnabled); if (classpathListenerEnabled != enabled) { if (enabled) { - log.debug("Adding classpath listener enabled=" + enabled); + log.info("Adding classpath listener enabled=" + enabled); classpathListenerEnabled = true; notifyProjectObserverSupported(); classpathListenerRequest = server.addClasspathListener(CLASSPATH_LISTENER).timeout(INITIALIZE_TIMEOUT) - .doOnSubscribe(x -> log.info("addClasspathListener ...")) - .doOnSuccess(x -> log.info("addClasspathListener DONE")) + .doOnSubscribe(x -> log.debug("addClasspathListener ...")) + .doOnSuccess(x -> log.debug("addClasspathListener DONE")) .doOnError(t -> { log.error("Unexpected error registering classpath listener with JDT.", t); enableClasspathListener(false); @@ -286,7 +287,7 @@ public class JdtLsProjectCache implements InitializableJavaProjectsService, Serv } }); } else { - log.debug("Removing classpath listener enabled=" + enabled); + log.info("Removing classpath listener enabled=" + enabled); DISPOSABLE.update(Disposables.single()); classpathListenerRequest = null; classpathListenerEnabled = false; @@ -312,10 +313,9 @@ public class JdtLsProjectCache implements InitializableJavaProjectsService, Serv if (!supported) { throw new IllegalStateException("Classpath listening not supported."); } else { - log.debug("CLASSPATH ENABLED CMD EXEC"); if (params.getArguments().get(0) instanceof JsonPrimitive) { boolean classpathListeningEnabled = ((JsonPrimitive)params.getArguments().get(0)).getAsBoolean(); - log.debug("CMD - Enable classpath listening: " + classpathListeningEnabled); + log.info("CMD - Enable classpath listening: " + classpathListeningEnabled); enableClasspathListener(classpathListeningEnabled); } } @@ -342,7 +342,6 @@ public class JdtLsProjectCache implements InitializableJavaProjectsService, Serv public void changed(Event event) { log.debug("claspath event received {}", event); server.doOnInitialized(() -> { - //log.info("initialized.thenRun block entered"); try { synchronized (table) { String uri = UriUtil.normalize(event.projectUri); diff --git a/headless-services/spring-boot-language-server/src/main/resources/application.properties b/headless-services/spring-boot-language-server/src/main/resources/application.properties index e1a1b48cb..4ae589acf 100644 --- a/headless-services/spring-boot-language-server/src/main/resources/application.properties +++ b/headless-services/spring-boot-language-server/src/main/resources/application.properties @@ -8,7 +8,6 @@ languageserver.completion-trigger-characters.spring-boot-properties: abcdefghijk spring.main.banner-mode: off logging.level.org.springframework.ide.vscode.boot.java.livehover.v2.SpringProcessCommandHandler=error -logging.level.org.springframework.ide.vscode.boot.jdt.ls.JdtLsProjectCache=error #logging.level.org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer=debug #logging.level.org.springframework.ide.vscode.boot.java.utils.SpringIndexerJava=debug