Bug 320791 NPE on workbench shutdown
This happens for me on rc3 when shuting down: java.lang.NullPointerException at org.eclipse.e4.ui.internal.workbench.SelectionServiceImpl.notifyListeners(SelectionServiceImpl.java:192) at org.eclipse.e4.ui.internal.workbench.SelectionServiceImpl.access$3(SelectionServiceImpl.java:191) at org.eclipse.e4.ui.internal.workbench.SelectionServiceImpl$2.changed(SelectionServiceImpl.java:230) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:95) at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:333) at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:350) at org.eclipse.e4.ui.internal.workbench.swt.ShellActivationListener$2.run(ShellActivationListener.java:127) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.ShellActivationListener.activate(ShellActivationListener.java:124) at org.eclipse.e4.ui.internal.workbench.swt.ShellActivationListener.handleEvent(ShellActivationListener.java:74)
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/SelectionServiceImpl.java
eventBroker.unsubscribe(eventHandler);
	}
	@PostConstruct
	void postConstruct() {
		eventBroker
				.subscribe(UIEvents.buildTopic(UIEvents.Context.TOPIC, UIEvents.Context.CONTEXT),
						eventHandler);
		
		if (isMasterService()) {
			for (MPart part : partService.getParts()) {
				track(part);
			}
		}
	}
	/**
	 * Returns whether this selection service is one that should be tracking the selection of other
	 * parts or not.
	 * 
	 * @return <code>true</code> if this service monitors the selection changes of multiple parts
	 */
	private boolean isMasterService() {
		IEclipseContext rootContext = serviceRoot.getContext();
		if (rootContext == context) {
			return true;
		}
		IEclipseContext parent = rootContext.getParent();
		while (parent != null) {
			if (parent == context) {
				return true;
			}