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
manager.add(renderer);
			return;
		}
		if (handledItem instanceof MMenuItem) {
			final MMenuItem mItem = (MMenuItem) handledItem;
			final String id = mItem.getId();
			if (mItem.isSeparator()) {
				if (!mItem.isVisible()) {
					if (id != null) {
						manager.add(new GroupMarker(id));
					}
				} else {
					if (id == null) {
						manager.add(new Separator());
					} else {
						manager.add(new Separator(id));
					}
				}
				return;
			} else if (mItem.getMenu() != null) {
				MenuManager item = new MenuManager(mItem.getName(), id);
				manager.add(item);
				for (MMenuItem menuItem : mItem.getMenu().getItems()) {
					createMenuItem(part, item, menuItem);
				}
				return;
			}
		}
		manager.add(new HandledContributionItem(handledItem, context));
	}