Bug 335889 E4Application#stop cannot shutdown the workbench
E4Application#stop() currently does nothing. As a result, if you trigger a shutdown of the OSGi runtime programmatically (e.g., getBundle(0).stop()), the UI workbench is not closed. Any subsequent clicking or interaction with the UI workbench triggers a cascade of errors. I think E4Application should hold onto the workbench in a field. The stop() method should call workbench.close().
bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/E4Application.java
* Upgrades the provided application's model to use MAreas for the shared
	 * area.
	 * <p>
	 * The shared area was originally represented by an MPartSashContainer. In
	 * M3, the MArea model was introduced and is now the representation of the
	 * shared area.
	 * </p>
	 */
	private void upgradeToMArea_M3(IEclipseContext applicationContext,
			MApplication application) {
		EModelService service = applicationContext.get(EModelService.class);
		
		for (MWindow window : application.getChildren()) {
			
			List<MUIElement> sharedElements = window.getSharedElements();
			for (MUIElement shared : sharedElements) {
				
				
				if ("org.eclipse.ui.editorss".equals(shared.getElementId()) 
						&& shared instanceof MPartSashContainer
						&& !(shared instanceof MArea)) {
					
					MArea area = AdvancedFactoryImpl.eINSTANCE.createArea();
					
					area.setLabel("Editor Area"); 
					area.setElementId(shared.getElementId());
					
					area.getChildren().add((MPartSashContainerElement) shared);
					
					area.setCurSharedRef(shared.getCurSharedRef());