From 0002646f2cf6b5c117b66816539de799a310fa57 Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Thu, 20 Sep 2018 13:35:49 -0700 Subject: [PATCH] Attempt at fixinf windows hanging issue again Slightly altered timeout uitility seems to work much better. --- .../vscode/commons/boot/app/cli/AbstractSpringBootApp.java | 3 +++ .../vscode/commons/boot/app/cli/LocalSpringBootApp.java | 7 ++++++- .../vscode/commons/languageserver/LaunguageServerApp.java | 2 +- .../ide/vscode/commons/util/AsyncRunner.java | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/AbstractSpringBootApp.java b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/AbstractSpringBootApp.java index 14c136d1c..e0b1e5adc 100644 --- a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/AbstractSpringBootApp.java +++ b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/AbstractSpringBootApp.java @@ -99,6 +99,9 @@ public abstract class AbstractSpringBootApp implements SpringBootApp { String url = getJmxUrl(); logger.info("Creating JMX connector: "+url); try { + if (url==null) { + throw new IOException("Couldn't obtain JMX url"); + } JMXConnector connector = JMXConnectorFactory.connect(new JMXServiceURL(url), null); logger.info("Created JMX connector: {}", connector); return connector; diff --git a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/LocalSpringBootApp.java b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/LocalSpringBootApp.java index f09e56894..150e83da1 100644 --- a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/LocalSpringBootApp.java +++ b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/LocalSpringBootApp.java @@ -136,7 +136,12 @@ public class LocalSpringBootApp extends AbstractSpringBootApp { @Override public Properties getSystemProperties() throws Exception { - return withTimeout(() -> vm.getSystemProperties()); + try { + return withTimeout(() -> vm.getSystemProperties()); + } catch (Exception e) { + logger.error("Fetching systemprops from local app failed: {}", ExceptionUtil.getMessage(e)); + throw e; + } } public boolean containsSystemProperty(Object key) throws Exception { diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/LaunguageServerApp.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/LaunguageServerApp.java index af6840707..32143283a 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/LaunguageServerApp.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/LaunguageServerApp.java @@ -153,7 +153,7 @@ public abstract class LaunguageServerApp { * https://github.com/itemis/xtext-languageserver-example/blob/master/org.xtext.example.mydsl.ide/src/org/xtext/example/mydsl/ide/RunServer.java */ public void startAsServer() throws IOException, InterruptedException { - Log.info("Starting LS as standlone server"); + Log.info("Starting LS as standlone server port = "+SERVER_STANDALONE_PORT); Function wrapper = consumer -> { MessageConsumer result = consumer; diff --git a/headless-services/commons/commons-util/src/main/java/org/springframework/ide/vscode/commons/util/AsyncRunner.java b/headless-services/commons/commons-util/src/main/java/org/springframework/ide/vscode/commons/util/AsyncRunner.java index b4a7ca748..7c18da400 100644 --- a/headless-services/commons/commons-util/src/main/java/org/springframework/ide/vscode/commons/util/AsyncRunner.java +++ b/headless-services/commons/commons-util/src/main/java/org/springframework/ide/vscode/commons/util/AsyncRunner.java @@ -35,8 +35,8 @@ public class AsyncRunner { public synchronized CompletableFuture invoke(Duration timeout, Callable callable) { CompletableFuture x = Mono.fromCallable(callable) - .timeout(timeout) .subscribeOn(executor) + .timeout(timeout) .toFuture(); lastRequest = x; return x;