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/SWTPartRenderer.java
MenuManager manager = new MenuManager();
		if (widget instanceof ToolItem) {
			swtMenu = manager.createContextMenu(((ToolItem) widget).getParent()
					.getShell());
		} else if (widget instanceof Decorations) {
			swtMenu = manager.createMenuBar((Decorations) widgetObject);
			swtMenu.setData(manager);
			((Decorations) widget).setMenuBar(swtMenu);
		} else if (widget instanceof Control) {
			swtMenu = manager.createContextMenu((Control) widget);
			
		} else {
			throw new IllegalArgumentException(
					"The widget must be MenuItem, Decorations, or Control but is: " 
							+ widgetObject);
		}
		swtMenu.setData(AbstractPartRenderer.OWNING_ME, menu);
		for (MMenuItem menuItem : menu.getItems()) {
			createMenuItem(part, manager, menuItem);
		}
		manager.update(true);
		return swtMenu;
	}
	public Object createToolBar(MPart<?> part, Object widgetObject,
			MToolBar toolbar) {
		int orientation = SWT.HORIZONTAL;
		Composite composite = null;
		while (!(widgetObject instanceof Composite)
				&& widgetObject instanceof Control) {
			widgetObject = ((Control) widgetObject).getParent();