From bfb8c62fc7a159a11994cd6d57a8c09fce46cb66 Mon Sep 17 00:00:00 2001 From: Konrad Windszus Date: Tue, 29 Apr 2025 15:00:24 +0200 Subject: [PATCH 1/2] Defer workspace operations until workspace service is started This closes #684 --- .../org/eclipse/jdt/internal/launching/LaunchingPlugin.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPlugin.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPlugin.java index b2ceb2f2a8..b75e5bf894 100644 --- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPlugin.java +++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPlugin.java @@ -566,6 +566,8 @@ public IWorkspace addingService(ServiceReference reference) { return null; } try { + InstanceScope.INSTANCE.getNode(ID_PLUGIN).addPreferenceChangeListener(this); + workspace.addResourceChangeListener(this, IResourceChangeEvent.PRE_DELETE | IResourceChangeEvent.PRE_CLOSE); workspace.addSaveParticipant(ID_PLUGIN, new ISaveParticipant() { @Override public void doneSaving(ISaveContext context1) {} @@ -601,9 +603,7 @@ public void removedService(ServiceReference reference, IWorkspace se }; fWorkspaceServiceTracker.open(); - InstanceScope.INSTANCE.getNode(ID_PLUGIN).addPreferenceChangeListener(this); JavaRuntime.addVMInstallChangedListener(this); - ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.PRE_DELETE | IResourceChangeEvent.PRE_CLOSE); DebugPlugin.getDefault().getLaunchManager().addLaunchListener(this); DebugPlugin.getDefault().addDebugEventListener(this); AdvancedSourceLookupSupport.start(); @@ -1331,4 +1331,4 @@ public static void trace(String message) { trace(null, message, null); } -} \ No newline at end of file +} From 9e792162855d6857d79931630e36f03b7a93f9f0 Mon Sep 17 00:00:00 2001 From: Konrad Windszus Date: Tue, 29 Apr 2025 15:12:09 +0200 Subject: [PATCH 2/2] Update LaunchingPlugin.java --- .../org/eclipse/jdt/internal/launching/LaunchingPlugin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPlugin.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPlugin.java index b75e5bf894..968efe1bf5 100644 --- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPlugin.java +++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPlugin.java @@ -566,8 +566,8 @@ public IWorkspace addingService(ServiceReference reference) { return null; } try { - InstanceScope.INSTANCE.getNode(ID_PLUGIN).addPreferenceChangeListener(this); - workspace.addResourceChangeListener(this, IResourceChangeEvent.PRE_DELETE | IResourceChangeEvent.PRE_CLOSE); + InstanceScope.INSTANCE.getNode(ID_PLUGIN).addPreferenceChangeListener(LaunchingPlugin.this); + workspace.addResourceChangeListener(LaunchingPlugin.this, IResourceChangeEvent.PRE_DELETE | IResourceChangeEvent.PRE_CLOSE); workspace.addSaveParticipant(ID_PLUGIN, new ISaveParticipant() { @Override public void doneSaving(ISaveContext context1) {}