Bug 308629 [Compatibility] NPE thrown when restarting Eclipse
It's trying to add bindings to the application and failing. java.lang.NullPointerException at org.eclipse.emf.common.util.AbstractEList.getNonDuplicates(AbstractEList.java:1167) at org.eclipse.emf.common.util.AbstractEList.addAll(AbstractEList.java:372) at org.eclipse.e4.ui.model.application.impl.ApplicationImpl.eSet(ApplicationImpl.java:417) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjectImpl.java:1081) at org.eclipse.e4.workbench.ui.internal.EMFModelDeltaSet.apply(EMFModelDeltaSet.java:31) at org.eclipse.e4.workbench.ui.internal.ModelReconcilingService.applyDeltas(ModelReconcilingService.java:54) at org.eclipse.e4.workbench.ui.internal.ModelReconcilingService.applyDeltas(ModelReconcilingService.java:36) at org.eclipse.e4.workbench.ui.internal.ResourceHandler.loadMostRecentModel(ResourceHandler.java:173) at org.eclipse.e4.ui.workbench.swt.internal.E4Application.loadApplicationModel(E4Application.java:194) at org.eclipse.e4.ui.workbench.swt.internal.E4Application.createE4Workbench(E4Application.java:129)
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/XMLModelReconciler.java
return factory.create(cls);
				}
			}
		}
		return null;
	}
	private Object getReference(Collection<ModelDelta> deltas, Element element,
			List<Object> references) {
		String id = element.getAttribute(APPLICATIONELEMENT_ID_ATTNAME);
		if (!id.equals("")) { 
			return findReference(references, id);
		}
		return createObject(deltas, element, references);
	}
	private Object createObject(Collection<ModelDelta> deltas, Element element,
			List<Object> references) {
		String typeName = element.getAttribute(TYPE_ATTNAME);
		String namespace = element.getAttribute(NAMESPACE_ATTNAME);
		EObject object = createObject(namespace, typeName);
		CompositeDelta compositeDelta = new CompositeDelta(object);
		E4XMIResource resource = (E4XMIResource) rootObject.eResource();
		resource.setInternalId(object, element.getAttribute(XMIID_ATTNAME));
		NodeList elementAttributes = (NodeList) element;
		for (int i = 0; i < elementAttributes.getLength(); i++) {
			Node node = elementAttributes.item(i);
			if (node instanceof Element) {
				Element item = (Element) node;
				if (!isUnset(item)) {
					String attributeName = item.getNodeName();
					EStructuralFeature attributeFeature = getStructuralFeature(object,