From 29e6555cb968f7483bdb06fce229e7cb24692b41 Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Tue, 10 Mar 2020 12:51:01 +0100 Subject: [PATCH] add additional debug output to identify the issue behind GH #413 --- .../vscode/boot/app/SpringSymbolIndex.java | 23 +++++++++++-------- .../BootJavaLanguageServerComponents.java | 8 +++++++ .../v2/SpringProcessConnectorRemote.java | 4 ++++ .../vscode/boot/jdt/ls/JdtLsProjectCache.java | 3 ++- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndex.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndex.java index 476024d20..6c656aa11 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndex.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndex.java @@ -174,16 +174,21 @@ public class SpringSymbolIndex implements InitializingBean { this.updateDocument(docURI, content, "didSave event"); } }); - config.addListener(evt -> + + config.addListener(evt -> { + log.info("update settings of spring indexer - start"); + server.getAsync().execute(() -> - configureIndexer(SymbolIndexConfig.builder() - .scanXml(config.isSpringXMLSupportEnabled()) - .xmlScanFolders(config.xmlBeansFoldersToScan()) - .scanTestJavaSources(config.isScanJavaTestSourcesEnabled()) - .build() - ) - ) - ); + configureIndexer(SymbolIndexConfig.builder() + .scanXml(config.isSpringXMLSupportEnabled()) + .xmlScanFolders(config.xmlBeansFoldersToScan()) + .scanTestJavaSources(config.isScanJavaTestSourcesEnabled()) + .build() + )); + + log.info("update settings of spring indexer - done"); + }); + server.doOnInitialized(this::serverInitialized); server.onShutdown(this::shutdown); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServerComponents.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServerComponents.java index f008b7f28..c11dcc3ca 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServerComponents.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServerComponents.java @@ -18,6 +18,8 @@ import java.util.Map; import java.util.Set; import org.eclipse.lsp4j.CompletionItemKind; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.ide.vscode.boot.app.BootJavaConfig; import org.springframework.ide.vscode.boot.app.BootLanguageServerParams; import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; @@ -95,6 +97,8 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent // Do not add more components here. You should instead just make your new // components into separate beans. + private static final Logger log = LoggerFactory.getLogger(BootJavaLanguageServerComponents.class); + public static final Set LANGUAGES = ImmutableSet.of(LanguageId.JAVA, LanguageId.CLASS); private final SimpleLanguageServer server; @@ -195,6 +199,8 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent documents.onDocumentHighlight(highlightsEngine); config.addListener(ignore -> { + log.info("update live process tracker settings - start"); + // live information automatic process tracking liveProcessTracker.setDelay(config.getLiveInformationAutomaticTrackingDelay()); liveProcessTracker.setTrackingEnabled(config.isLiveInformationAutomaticTrackingEnabled()); @@ -210,6 +216,8 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent else { liveChangeDetectionWatchdog.disableHighlights(); } + + log.info("update live process tracker settings - done"); }); server.doOnInitialized(this::initialized); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnectorRemote.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnectorRemote.java index 210e024bc..70edfb94f 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnectorRemote.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnectorRemote.java @@ -166,6 +166,8 @@ public class SpringProcessConnectorRemote { } private synchronized void handleSettings(Settings settings) { + logger.info("updating settings for remote processses to track - start"); + RemoteBootAppData[] appData = settings.getAs(RemoteBootAppData[].class, "boot-java", "remote-apps"); if (appData == null) { //Avoid NPE @@ -199,6 +201,8 @@ public class SpringProcessConnectorRemote { return processKey; }); } + + logger.info("updating settings for remote processses to track - done"); } public static String getProcessName(RemoteBootAppData appData) { 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 f419f68d5..f0ab7efc4 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 @@ -46,6 +46,7 @@ import reactor.core.publisher.Mono; public class JdtLsProjectCache implements InitializableJavaProjectsService { + private static final Duration INITIALIZE_TIMEOUT = Duration.ofSeconds(10); private static final Object JDT_SCHEME = "jdt"; private final boolean IS_JANDEX_INDEX; @@ -256,7 +257,7 @@ public class JdtLsProjectCache implements InitializableJavaProjectsService { }); } }) - .timeout(Duration.ofSeconds(5)) + .timeout(INITIALIZE_TIMEOUT) .doOnError(t -> { if (isNoJdtError(t)) { log.info("JDT Language Server not available. Fallback classpath provider will be used instead.");