Bug 299685 Empty iconURI's cause 'MalformedURLException' failures rather than being ignored
One of the issues Lars' found is that if you fill in a field (i.e. iconURI) and subsequently clear it you don't end up in the same model state. Once the value has been set in the editor it will never be 'null' again, clearing the field just sets it to an empty string.
bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/SWTPartRenderer.java
protected Control getOutermost(Control ctrl) {
		
		
		Composite curComposite = ctrl.getParent();
		Control outerMost = ctrl;
		while (curComposite != null
				&& curComposite.getData(AbstractPartRenderer.OWNING_ME) == null
				&& !(curComposite instanceof Shell)) {
			outerMost = curComposite;
			curComposite = curComposite.getParent();
		}
		return outerMost;
	}
	/*
	 * HACK: Create a wrapper composite with appropriate layout for the purpose
	 * of styling margins. See bug #280632
	 */
	protected Composite createWrapperForStyling(Composite parentWidget,
			IEclipseContext context) {
		Composite layoutHolder = new Composite(parentWidget, SWT.NONE);
		addLayoutForStyling(layoutHolder);
		layoutHolder.setData("org.eclipse.e4.ui.css.swt.marginWrapper", true); 
		final IStylingEngine engine = (IStylingEngine) context
				.get(IStylingEngine.SERVICE_NAME);
		engine.setClassname(layoutHolder, "marginWrapper"); 
		return layoutHolder;
	}
	/*
	 * HACK: Add layout information to the composite for the purpose of styling
	 * margins. See bug #280632