Bug 85350 [Markers] [Progress] NoClassDefFoundError from job running during shutdown
i200502150800 Got the following exception running Core UI application startup performance tests (the test just exits once the workbench is alive, so it is a very short session). I did not verify the source code, but it seems the runtime plug-in may have already been stopped when the job in question started doing its work. java.lang.NoClassDefFoundError: org/eclipse/core/runtime/jobs/ILock at org.eclipse.ui.views.markers.internal.TableContentProvider.cancelPendingChanges(TableContentProvider.java:342) at org.eclipse.ui.views.markers.internal.TableView.haltTableUpdates(TableView.java:94) at org.eclipse.ui.views.markers.internal.MarkerView.internalRefresh(MarkerView.java:188) at org.eclipse.ui.views.markers.internal.MarkerView.access$3(MarkerView.java:181) at org.eclipse.ui.views.markers.internal.MarkerView$3.run(MarkerView.java:281) at org.eclipse.ui.views.markers.internal.RestartableJob$2.run(RestartableJob.java:85) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:67)
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerView.java
private void refreshFilterMenu() {
		if (filtersMenu == null)
			return;
		filtersMenu.removeAll();
		MarkerFilter[] filters = getAllFilters();
		for (int i = 0; i < filters.length; i++) {
			filtersMenu.add(new FilterEnablementAction(filters[i], this));
		}
	}
	/**
	 * Open a filter dialog on the receiver.
	 */
	protected abstract DialogMarkerFilter createFiltersDialog();
	/**
	 * Given a selection of IMarker, reveals the corresponding elements in the
	 * viewer
	 * 
	 * @param structuredSelection
	 * @param reveal
	 */
	public void setSelection(IStructuredSelection structuredSelection,
			boolean reveal) {
		TreeViewer viewer = getViewer();
		List newSelection = new ArrayList(structuredSelection.size());
		for (Iterator i = structuredSelection.iterator(); i.hasNext();) {
			Object next = i.next();
			if (next instanceof IMarker) {
				ConcreteMarker marker = getCurrentMarkers().getMarker(
						(IMarker) next);
				if (marker != null) {