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/TableContentProvider.java
private Job disableUpdatesJob = new WorkbenchJob(TABLE_SYNCHRONIZATION) {
		public IStatus runInUIThread(IProgressMonitor monitor) {
			if (controlExists()) {
				getViewer().getTable().setRedraw(false);
			}
			
			return Status.OK_STATUS;
		}
	};
	
	/**
	 * This job re-enables redraw on the table
	 */
	private Job enableUpdatesJob = new WorkbenchJob(TABLE_SYNCHRONIZATION) {
		public IStatus runInUIThread(IProgressMonitor monitor) {
			if (controlExists()) {
				getViewer().getTable().setRedraw(true);
			}
			
			return Status.OK_STATUS;
		}
	};
	
	/**
	 * This job is responsible for performing a single incremental update to the
	 * viewer. It will either add, remove, or change items in the viewer depending
	 * on the contents of the pending* sets, above. It is scheduled repeatedly by 
	 * the OverallUpdateJob, below.
	 */
	private class WidgetRefreshJob extends WorkbenchJob {