Bug 283340 NPE is thrown when last child of stack is removed
1. Close the 'Outline' view. 2. That stack is now gone. An NPE is logged. java.lang.NullPointerException at org.eclipse.e4.workbench.ui.renderers.swt.StackModelFactory.childRemoved(StackModelFactory.java:315) at org.eclipse.e4.workbench.ui.renderers.swt.StackModelFactory$2.notifyChanged(StackModelFactory.java:265) at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:280) at org.eclipse.e4.ui.model.internal.application.MPartImpl.setVisible(MPartImpl.java:457) at org.eclipse.e4.workbench.ui.renderers.swt.StackModelFactory$5.close(StackModelFactory.java:344) at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:2199) at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:327)
bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/StackRenderer.java
final IStylingEngine engine = (IStylingEngine) folderContext
					.get(IStylingEngine.SERVICE_NAME);
			folderContext.runAndTrack(new Runnable() {
				public void run() {
					
					
					if (ctf.isDisposed())
						return;
					IEclipseContext currentActive = toplevelContext;
					IEclipseContext child;
					while (currentActive != folderContext
							&& (child = (IEclipseContext) currentActive
									.get("activeChild")) != null && child != currentActive) { 
						currentActive = child;
					}
					
					String cssClassName = (currentActive == folderContext) ? "active" 
							: "inactive"; 
					engine.setClassname(ctf, cssClassName);
					
					
					if (ctf.getTopRight() != null)
						engine.setClassname(ctf.getTopRight(), cssClassName);
					
					
					CTabItem[] items = ctf.getItems();
					for (int i = 0; i < items.length; i++) {
						stylingEngine.setClassname(items[i], cssClassName);
					}
				}