From 0541f5165ae7a7d1b475af05b48a01061d69f479 Mon Sep 17 00:00:00 2001 From: Jinbo Wang Date: Tue, 31 May 2022 13:07:24 +0800 Subject: [PATCH 1/2] Increase polling frequency to ensure that Java processes are detected --- .../java/debug/core/adapter/handler/LaunchUtils.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/LaunchUtils.java b/com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/LaunchUtils.java index fc89bfa7c..ddf8f1754 100644 --- a/com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/LaunchUtils.java +++ b/com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/LaunchUtils.java @@ -117,7 +117,7 @@ public static ProcessHandle findJavaProcessInTerminalShell(long shellPid, String ProcessHandle shellProcess = ProcessHandle.of(shellPid).orElse(null); if (shellProcess != null) { int retry = 0; - final int INTERVAL = 100; + final int INTERVAL = 20/*ms*/; final int maxRetries = timeout / INTERVAL; final boolean isCygwinShell = isCygwinShell(shellProcess.info().command().orElse(null)); while (retry <= maxRetries) { @@ -127,11 +127,17 @@ public static ProcessHandle findJavaProcessInTerminalShell(long shellPid, String }).findFirst(); if (subProcessHandle.isPresent()) { + if (retry > 0) { + logger.info("Retried " + retry + " times to find Java subProcess."); + } logger.info("shellPid: " + shellPid + ", javaPid: " + subProcessHandle.get().pid()); return subProcessHandle.get(); } else if (isCygwinShell) { long javaPid = findJavaProcessByCygwinPsCommand(shellProcess, javaCommand); if (javaPid > 0) { + if (retry > 0) { + logger.info("Retried " + retry + " times to find Java subProcess."); + } logger.info("[Cygwin Shell] shellPid: " + shellPid + ", javaPid: " + javaPid); return ProcessHandle.of(javaPid).orElse(null); } @@ -147,8 +153,10 @@ public static ProcessHandle findJavaProcessInTerminalShell(long shellPid, String } catch (InterruptedException e) { // do nothing } - logger.info("Retry to find Java subProcess of shell pid " + shellPid); + } + + logger.info("Retried " + retry + " times but failed to find Java subProcess of shell pid " + shellPid); } return null; From 5cb7918e2c276991f8638eb0c805c057daa345e0 Mon Sep 17 00:00:00 2001 From: Jinbo Wang Date: Tue, 31 May 2022 13:15:59 +0800 Subject: [PATCH 2/2] Make checkstyle happy --- .../microsoft/java/debug/core/adapter/handler/LaunchUtils.java | 1 - 1 file changed, 1 deletion(-) diff --git a/com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/LaunchUtils.java b/com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/LaunchUtils.java index ddf8f1754..ca7d69a99 100644 --- a/com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/LaunchUtils.java +++ b/com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/LaunchUtils.java @@ -153,7 +153,6 @@ public static ProcessHandle findJavaProcessInTerminalShell(long shellPid, String } catch (InterruptedException e) { // do nothing } - } logger.info("Retried " + retry + " times but failed to find Java subProcess of shell pid " + shellPid);