From 97f253c19a25bb323a70ffd7e4bcd402e71d7746 Mon Sep 17 00:00:00 2001 From: Simeon Andreev Date: Thu, 2 Jul 2026 17:27:26 +0300 Subject: [PATCH 1/2] Consider "RMI Runtime" thread group as a user group LSP4J calls are serviced by the "RMI Runtime" thread group. In JDK code, this group is considered a user thread group, as it can run user code (such as LSP4J calls from clients). This change adjusts JDIThread to consider the "RMI Runtime" thread group as a user thread group. This makes it possible to debug LSP4J code without turning on the system threads Debug view filter. Which in turn avoids running into Debug view updating mechanism bugs related to using filters. See: https://github.com/eclipse-jdt/eclipse.jdt.debug/issues/971 --- .../eclipse/jdt/internal/debug/core/model/JDIThread.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java index d607ff7141..7c1c59621b 100644 --- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java +++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java @@ -113,6 +113,12 @@ public class JDIThread extends JDIDebugElement implements IJavaThread { */ private static final String MAIN_THREAD_GROUP = "main"; //$NON-NLS-1$ + /** + * Constant for the name of the {@code RMI Runtime} thread group. See internal JDK method {@code sun.rmi.runtime.RuntimeUtil.newUserThread()}, + * which uses: {@code sun.rmi.runtime.RuntimeUtil.userThreadGroup} + */ + private static final String RMI_RUNTIME_THREAD_GROUP = "RMI Runtime"; //$NON-NLS-1$ + /** * @since 3.5 */ @@ -565,7 +571,7 @@ protected void determineIfSystemThread() throws DebugException { // #targetRequestFailed will throw an exception return; } - if (tgn != null && tgn.equals(MAIN_THREAD_GROUP)) { + if (MAIN_THREAD_GROUP.equals(tgn) || RMI_RUNTIME_THREAD_GROUP.equals(tgn)) { fIsSystemThread = false; break; } From b7b13d77016d26d1dd0066ec8783f79cfbb49084 Mon Sep 17 00:00:00 2001 From: Simeon Andreev Date: Fri, 10 Jul 2026 22:23:01 +0300 Subject: [PATCH 2/2] Version bump of org.eclipse.jdt.debug for 4.41. --- org.eclipse.jdt.debug/META-INF/MANIFEST.MF | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.eclipse.jdt.debug/META-INF/MANIFEST.MF b/org.eclipse.jdt.debug/META-INF/MANIFEST.MF index c7bc713a22..5ef560aea2 100644 --- a/org.eclipse.jdt.debug/META-INF/MANIFEST.MF +++ b/org.eclipse.jdt.debug/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.jdt.debug; singleton:=true -Bundle-Version: 3.26.0.qualifier +Bundle-Version: 3.26.100.qualifier Bundle-ClassPath: jdimodel.jar Bundle-Activator: org.eclipse.jdt.internal.debug.core.JDIDebugPlugin Bundle-Vendor: %providerName