Bug 94399 [preferences] Multiple requests for rebuild
Build: I20050509-2010 1) Open a new workspace 2) Create a Java project 3) Modify at least one preference on every "Compiler" preference page. 4) Click ok -> You are prompted to do a full rebuild for each page that has changed. If you changed three pages, you get three prompt dialogs. The user should only be prompted once. Even worse, all three or four builds are queued up and run one after the other. If you don't cancel the builds, the workspace is rebuilt several times.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/util/CoreUtility.java
}
	/**
	 * Returns a build job
	 * @param project The project to build or <code>null</code> to build the workspace.
	 */
	public static Job getBuildJob(final IProject project) {
		Job buildJob= new Job(JavaUIMessages.CoreUtility_job_title){  
			/* (non-Javadoc)
			 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
			 */
			protected IStatus run(IProgressMonitor monitor) {
				try {
					if (project != null) {
						monitor.beginTask(Messages.format(JavaUIMessages.CoreUtility_buildproject_taskname, project.getName()), 2); 
						project.build(IncrementalProjectBuilder.FULL_BUILD, new SubProgressMonitor(monitor,1));
						JavaPlugin.getWorkspace().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new SubProgressMonitor(monitor,1));
					} else {
						monitor.beginTask(JavaUIMessages.CoreUtility_buildall_taskname, 2); 
						JavaPlugin.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, new SubProgressMonitor(monitor, 2));
					}
				} catch (CoreException e) {
					return e.getStatus();
				} catch (OperationCanceledException e) {
					return Status.CANCEL_STATUS;
				}
				finally {
					monitor.done();
				}
				return Status.OK_STATUS;
			}