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/SashRenderer.java
if (!(part instanceof MSashForm<?>) || !(parent instanceof Composite))
			return null;
		Widget parentWidget = (Widget) parent;
		int orientation = (part.getPolicy() != null && part.getPolicy()
				.startsWith("Horizontal")) ? SWT.HORIZONTAL 
				: SWT.VERTICAL;
		SashForm newSash = new SashForm((Composite) parentWidget, SWT.SMOOTH
				| orientation);
		bindWidget(part, newSash);
		newSash.setVisible(true);
		return newSash;
	}
	public void postProcess(MPart<?> part) {
		if (part instanceof org.eclipse.e4.ui.model.application.MSashForm<?>) {
			
			EList<MPart<?>> kids = (EList<MPart<?>>) part.getChildren();
			if (kids.size() == 0)
				return;
			
			int visCount = 0;
			for (Iterator iterator = kids.iterator(); iterator.hasNext();) {
				MPart<?> mPart = (MPart<?>) iterator.next();
				if (mPart.getWidget() != null)
					visCount++;
			}
			
			final SashForm sashForm = (SashForm) part.getWidget();
			org.eclipse.e4.ui.model.application.MSashForm<?> sashPart = (org.eclipse.e4.ui.model.application.MSashForm<?>) part;
			List<Integer> weightList = sashPart.getWeights();