Bug 57600 New user progress dialog needs to check if it needs to close
The done() method on the ProgressMonitorFocusJobsDialog is still running even if the workbench is shutdown. java.lang.IllegalStateException: Job manager has been shut down. at org.eclipse.core.internal.jobs.JobManager.schedule (JobManager.java:639) at org.eclipse.core.internal.jobs.InternalJob.schedule (InternalJob.java:268) at org.eclipse.core.runtime.jobs.Job.schedule(Job.java:363) at org.eclipse.ui.internal.progress.ProgressMonitorFocusJobDialog$1.done (ProgressMonitorFocusJobDialog.java:123) at org.eclipse.core.internal.jobs.JobListeners$3.notify (JobListeners.java:38) at org.eclipse.core.internal.jobs.JobListeners$7.run (JobListeners.java:117) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:607) at org.eclipse.core.internal.jobs.JobListeners.doNotify (JobListeners.java:87) at org.eclipse.core.internal.jobs.JobListeners.done (JobListeners.java:136) at org.eclipse.core.internal.jobs.JobManager.endJob (JobManager.java:372) at org.eclipse.core.internal.jobs.WorkerPool.endJob (WorkerPool.java:124) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:72)
bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/GlobalBuildAction.java
if (!verifyBuildersAvailable(roots))
		return;
	
	if(!verifyNoManualRunning())
		return;
		
	
	saveAllResources();
	
	doBuildOperation();
}
/**
 * Causes all editors to save any modified resources
 * depending on the user's preference.
 */
 void saveAllResources() {
	if (!BuildAction.isSaveAllSet())
		return;
		
	IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
	for (int i = 0; i < windows.length; i++) {
		IWorkbenchPage[] perspectives = windows[i].getPages();
		for (int j = 0; j < perspectives.length; j++)
			perspectives[j].saveAllEditors(false);
	}
}
/**
 * Checks that there is at least one project with a
 * builder registered on it.