Bug 324230 NPE thrown when unrendering an MPartSashContainer that contains unrendered children
java.lang.NullPointerException at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.hideChild(SashRenderer.java:317) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:517) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:528)
bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashRenderer.java
}
		if (sashUpdateJob == null) {
			sashUpdateJob = new SashUpdateJob();
			sashUpdateJob.sashesToUpdate.add(sf);
			sf.getDisplay().asyncExec(sashUpdateJob);
		} else {
			if (!sashUpdateJob.sashesToUpdate.contains(sf))
				sashUpdateJob.sashesToUpdate.add(sf);
		}
	}
	private class ModelUpdateJob implements Runnable {
		public List<MElementContainer<MUIElement>> sashModelsToUpdate = new ArrayList<MElementContainer<MUIElement>>();
		public void run() {
			clearModelUpdate();
			while (!sashModelsToUpdate.isEmpty()) {
				MElementContainer<MUIElement> psc = sashModelsToUpdate
						.remove(0);
				
				ignoreWeightUpdates = true;
				synchSashToModel(psc);
				ignoreWeightUpdates = false;
			}
		}
	}
	private void addModelToUpdate(MElementContainer<MUIElement> pscModel) {
		Control sf = (Control) pscModel.getWidget();
		if (sf == null || sf.isDisposed())
			return;
		if (modelUpdateJob == null) {
			modelUpdateJob = new ModelUpdateJob();