Bug 326699 Part in shared area finds wrong parent context during shutdown
Build: 4.1 M2. After working for a couple of days, I attempted to shutdown and got an NPE. I was unable to close the application normally and had to kill the process. Complete log to follow but here is a snippet: java.lang.NullPointerException at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1322) at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1059) at org.eclipse.ui.internal.WorkbenchWindow.access$9(WorkbenchWindow.java:1038) at org.eclipse.ui.internal.WorkbenchWindow$6.run(WorkbenchWindow.java:1085) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/PartRenderingEngine.java
MUIElement parent = element.getParent();
		AbstractPartRenderer parentRenderer = parent != null ? getRendererFor(parent)
				: null;
		if (parentRenderer != null) {
			parentRenderer.hideChild(element.getParent(), element);
		}
		AbstractPartRenderer renderer = getRendererFor(element);
		
		if (renderer != null) {
			if (element instanceof MElementContainer<?>) {
				MElementContainer<MUIElement> container = (MElementContainer<MUIElement>) element;
				for (MUIElement child : container.getChildren()) {
					removeGui(child);
				}
			}
			renderer.disposeWidget(element);
			
			if (element instanceof MContribution) {
				IEclipseContext parentContext = renderer.getContext(element);
				ContextInjectionFactory.uninject(
						((MContribution) element).getObject(), parentContext);
				((MContribution) element).setObject(null);
			}
			
			if (element instanceof MContext) {
				clearContext((MContext) element);
			}
		}
		if (removeRoot == element)