Community
Participate
Working Groups
RSEInitJob is scheduled to run without constraint when RSE is initially loaded. Its purpose is to load profiles and to create any initial models objects needed in a new workspace. Part of loading profiles includes the loading of subsystem configurations. As these are loaded they may trigger code that depends on elements of the workbench that have not fully initialized. This comes to light in 4.2, perhaps due to some scheduling change in the platform. The platform team has recommended that we schedule this job later, perhaps exploiting the org.eclipse.ui.startup extension point.
Dave - please review the patch in branch dwd-move-init-trial. The change moves the scheduling of the RSEInitJob to org.eclipse.rse.ui from org.eclipse.rse.core. The RSEInitJob and its query API remains unchanged in core, only its scheduling has been changed.
I looked at and tried out the changes and I don't see any problems so I think this is good to go.
Added the version and copyright changes that DaveM suggested from his review.
Reopening for problem found in PTP initialization.
Created attachment 226947 [details] patch to exploit org.eclipse.ui.startup This patch moves the scheduling from the UI plugin activation to a separate class invoked by org.eclipse.ui.startup. It was previously possible to start the workbench and wait for the init job to finish and not have it started if the RSE UI was not activated. By using org.eclipse.ui.startup we avoid the problem.
Dave - please review the patch.
This patch appears to resolve the issue for PTP.
The patch looks okay to me.
Fix has been tested by PTP