Bug 122319 [working sets] JME while trying to delete missing project
1. Create plugin project 2. Add it to some project set; enable working sets view in project explorer (optional?) 3. Launch runtime workbench 4. Import this project in runtime workspace; do not copy 5. Add it to some project set as on step 2 only in runtime workbench 6. Close runtime workbench 7. Delete project with contents 8. Relaunch runtime workbench => Project is closed; internal errors are in log whenever I click on the project; it's not possible to delete it; the only way to get rid of it is to remove it from project set. Java Model Exception: Java Model Status [org.eclipse.gmf.graphdef.draw2dx.editor does not exist] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:478) at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:328) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:235) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:498) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:242) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:228) at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:183) at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoots(JavaProject.java:1811) at org.eclipse.jdt.internal.corext.refactoring.RefactoringAvailabilityTester.isInferTypeArgumentsAvailable(RefactoringAvailabilityTester.java:381) at org.eclipse.jdt.internal.corext.refactoring.RefactoringAvailabilityTester.isInferTypeArgumentsAvailable(RefactoringAvailabilityTester.java:408) at org.eclipse.jdt.ui.actions.InferTypeArgumentsAction.selectionChanged(InferTypeArgumentsAction.java:97) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged(SelectionDispatchAction.java:237) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.selectionChanged(SelectionDispatchAction.java:232) at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:162) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.runtime.Platform.run(Platform.java:785) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148) at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:160) at org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1784) at org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredViewer.java:1027) at org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:1053) at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:210) at org.eclipse.jface.util.OpenStrategy.access$3(OpenStrategy.java:205) at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:365) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:914) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3285) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2905) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1762) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1726) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:397) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:109) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:379) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338) at org.eclipse.core.launcher.Main.basicRun(Main.java:282) at org.eclipse.core.launcher.Main.run(Main.java:977) at org.eclipse.core.launcher.Main.main(Main.java:952)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/workingsets/JavaWorkingSetUpdater.java
if (type == IJavaElement.JAVA_PROJECT && kind == IJavaElementDelta.CHANGED) {
			if (index != -1 && (flags & IJavaElementDelta.F_CLOSED) != 0) {
				result.set(index, ((IJavaProject)jElement).getProject());
			} else if ((flags & IJavaElementDelta.F_OPENED) != 0) {
				index= result.indexOf(((IJavaProject)jElement).getProject());
				if (index != -1)
					result.set(index, jElement);
			}
		}
		if (index != -1) {
			if (kind == IJavaElementDelta.REMOVED) {
				if ((flags & IJavaElementDelta.F_MOVED_TO) != 0) {
					result.set(index, delta.getMovedToElement());
				} else {
					result.remove(index);
				}
			}
		}
		IResourceDelta[] resourceDeltas= delta.getResourceDeltas();
		if (resourceDeltas != null) {
			for (int i= 0; i < resourceDeltas.length; i++) {
				processResourceDelta(result, resourceDeltas[i]);
			}
		}
		IJavaElementDelta[] children= delta.getAffectedChildren();
		for (int i= 0; i < children.length; i++) {
			processJavaDelta(result, children[i]);
		}
	}