From f16064c271bdf36ee9d129b2473a9dfd8539d3a6 Mon Sep 17 00:00:00 2001 From: Eclipse Platform Bot Date: Tue, 7 Jan 2025 15:25:20 +0000 Subject: [PATCH 1/2] Version bump(s) for 4.35 stream --- bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF index 2a8197c69ef..98a87440549 100644 --- a/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Plugin.name Bundle-SymbolicName: org.eclipse.ui.ide.application;singleton:=true -Bundle-Version: 1.5.600.qualifier +Bundle-Version: 1.5.700.qualifier Bundle-Vendor: %Plugin.providerName Bundle-Localization: plugin Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.21.0,4.0.0)", From 824b356e13c80732abc97cd4f5b8b688a3b08158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Kubitz?= Date: Tue, 7 Jan 2025 16:17:09 +0100 Subject: [PATCH 2/2] Do not suspend JobManager during startup by default Because of possible deadlock when Javaeditor from JDT calls PDE calls OOMPH calls P2 to download new target platform waiting for a Job that is not executed because JobManager is suspendend https://github.com/eclipse-pde/eclipse.pde/issues/1481 Was already suggested in https://bugs.eclipse.org/bugs/show_bug.cgi?id=514090 Old behavior can be used by setting VM property -Dorg.eclipse.ui.suspendJobManagerDuringStart=true --- .../ui/internal/ide/application/IDEApplication.java | 11 ++++++++++- .../internal/ide/application/IDEWorkbenchAdvisor.java | 4 +++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java index c77bbbb1010..7287f12c936 100644 --- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java +++ b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java @@ -133,6 +133,13 @@ public class IDEApplication implements IApplication, IExecutableExtension { */ public static final String PLUGIN_ID = "org.eclipse.ui.ide.application"; //$NON-NLS-1$ + /** + * Suspending JobManager can be forced by specify VM property: + * {@code -Dorg.eclipse.ui.suspendJobManagerDuringStart=true} + */ + static final boolean SUSPEND_JOBMANAGER_DURING_START = Boolean + .getBoolean("org.eclipse.ui.suspendJobManagerDuringStart"); //$NON-NLS-1$ + /** * Creates a new IDE application. */ @@ -146,7 +153,9 @@ public Object start(IApplicationContext appContext) throws Exception { // is done to reduce resource contention during startup. // The job manager will be resumed by the // IDEWorkbenchAdvisor.postStartup method. - Job.getJobManager().suspend(); + if (SUSPEND_JOBMANAGER_DURING_START) { + Job.getJobManager().suspend(); + } Display display = createDisplay(); // processor must be created before we start event loop diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java index ceda5e16222..694d38099f1 100644 --- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java +++ b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java @@ -286,7 +286,9 @@ public void postStartup() { } finally { // Resume the job manager to allow background jobs to run. // The job manager was suspended by the IDEApplication.start method. - Job.getJobManager().resume(); + if (IDEApplication.SUSPEND_JOBMANAGER_DURING_START) { + Job.getJobManager().resume(); + } } }