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
*/
 boolean verifyBuildersAvailable(IProject[] roots) {
	try {
		for (int i = 0; i < roots.length; i++) {
			if (roots[i].isAccessible())
				if (roots[i].getDescription().getBuildSpec().length > 0)
					return true;
		}
	}
	catch (CoreException e) {
		IDEWorkbenchPlugin.log("Exception in " + getClass().getName() + ".run: " + e);
		ErrorDialog.openError(
			getShell(),
			IDEWorkbenchMessages.getString("GlobalBuildAction.buildProblems"), 
			IDEWorkbenchMessages.format("GlobalBuildAction.internalError", new Object[] {e.getMessage()}), 
			e.getStatus());
		return false;
	}
	
	return false;
}
/* (non-Javadoc)
 * Method declared on ActionFactory.IWorkbenchAction.
 * @since 3.0
 */
public void dispose() {
	if (workbenchWindow == null) {
		
		return;
	}