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
/**
	 * Starts the update thread... this will continue to make incremental changes
	 * to the viewer until the pending* sets become empty. Does nothing if the
	 * update thread is already running or if there are no changes to process.
	 */
	private void scheduleUpdate() {		
		if (hasPendingChanges()) {
			updateJob.schedule();
		}
	}
	
	/**
	 * Cancels any pending changes to the viewer. The contents of the viewer
	 * will be left in whatever state they are in at the time. Any changes that
	 * have not yet been applied will be lost. It is a good idea to call this
	 * method before performing a long computation that will ultimately invalidate
	 * the contents of the viewer.
	 */
	public void cancelPendingChanges() {
		updateJob.cancel();
		
		lock.acquire();
		try {
			queues.cancelPending();
		} finally {
			lock.release();
		}
	}
	private void doUpdate(IProgressMonitor monitor) throws InterruptedException {