Bug 58542 Dangerous change to setSystem in MarkersViews
In MarkerView.refresh() there is the line uiJob.setSystem(true); Which may happen after the uiJob has run. As a result it is possible that it is not being used to decrement the count of jobs and the progress monitor can run forever.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerView.java
try {
			uiJob.join();
		} catch (InterruptedException e) {
			monitor.done();
		}
		
		monitor.done();
	}
	
	/**
	 * Causes the view to re-sync its contents with the workspace. Note that
	 * changes will be scheduled in a background job, and may not take effect
	 * immediately. 
	 */
	protected void refresh() {
		uiJob.setPriority(Job.INTERACTIVE);
		uiJob.setSystem(true);
	
		if (refreshJob == null) {
			
			refreshJob = new RestartableJob(
				Messages.format("MarkerView.refreshTitle", new Object[] {getTitle()}),
				new IRunnableWithProgress() {
					public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
						internalRefresh(monitor);
					}
				},
				getProgressService());			
		}