Bug 298415 StackRenderer assumes the shell has not been disposed when forcing a re-layout
bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/StackRenderer.java
MElementContainer<MUIElement> stack = uiElement.getParent();
				CTabItem item = findItemForPart(stack, uiElement);
				if (item == null) {
					return;
				}
				Boolean dirtyState = (Boolean) event
						.getProperty(UIEvents.EventTags.NEW_VALUE);
				String text = item.getText();
				boolean hasAsterisk = text.charAt(0) == '*';
				if (dirtyState.booleanValue()) {
					if (!hasAsterisk) {
						item.setText('*' + text);
					}
				} else if (hasAsterisk) {
					item.setText(text.substring(1));
				}
			}
		};
		eventBroker.subscribe(UIEvents.buildTopic(UIEvents.Dirtyable.TOPIC,
				UIEvents.Dirtyable.DIRTY), dirtyUpdater);
	}
	private String getLabel(MUILabel itemPart, String newName) {
		if (itemPart instanceof MDirtyable && ((MDirtyable) itemPart).isDirty()) {
			newName = '*' + newName;
		}
		return newName;
	}
	public Object createWidget(MUIElement element, Object parent) {
		Widget newWidget = null;
		if (!(element instanceof MPartStack) || !(parent instanceof Composite))