diff --git a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootApp.java b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootApp.java index b2aa7a1d0..0e122ca29 100644 --- a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootApp.java +++ b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootApp.java @@ -62,13 +62,23 @@ public class SpringBootApp { private VirtualMachine vm; private VirtualMachineDescriptor vmd; + private static final String LOCAL_CONNECTOR_ADDRESS = "com.sun.management.jmxremote.localConnectorAddress"; + private final Supplier jmxConnect = Suppliers.memoize(() -> { + String address = null; try { - return vm.startLocalManagementAgent(); + address = vm.getAgentProperties().getProperty(LOCAL_CONNECTOR_ADDRESS); } catch (Exception e) { - Log.log(e); - return null; + //ignore } + if (address==null) { + try { + address = vm.startLocalManagementAgent(); + } catch (IOException e) { + Log.log(e); + } + } + return address; }); private static SpringBootAppCache cache = new SpringBootAppCache(); @@ -77,6 +87,11 @@ public class SpringBootApp { return cache.getAllRunningJavaApps(); } + private String show(String msg, String value) { + System.err.println(msg+value); + return value; + } + /** * @return Map that contains the boot apps, mapping the process ID -> boot app accessor object */