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
if (id == null) {
					Element referenceElement = createReferenceElement(document, (EObject) value,
							featureName);
					referenceAttributeElement.appendChild(referenceElement);
				} else {
					referenceAttributeElement.setAttribute(featureName, id);
				}
			} else if (isChainedReference(featureName)) {
				List<?> references = (List<?>) object.eGet(feature);
				appendReferenceElements(document, referenceAttributeElement, references);
			} else if (isUnorderedChainedAttribute(featureName)) {
				List<?> attributes = (List<?>) object.eGet(feature);
				for (Object attribute : attributes) {
					Element attributeElement = document.createElement(featureName);
					attributeElement.setAttribute(featureName, String.valueOf(attribute));
					referenceAttributeElement.appendChild(attributeElement);
				}
			} else if (isStringToStringMap(featureName)) {
				EMap<?, ?> map = (EMap<?, ?>) object.eGet(feature);
				for (Entry<?, ?> entry : map.entrySet()) {
					Element entryElement = document.createElement(featureName);
					entryElement.setAttribute(ENTRY_ATTVALUE_KEY, (String) entry.getKey());
					entryElement.setAttribute(ENTRY_ATTVALUE_VALUE, (String) entry.getValue());
					referenceAttributeElement.appendChild(entryElement);
				}
			} else {
				referenceAttributeElement.setAttribute(featureName, String.valueOf(object
						.eGet(feature)));
			}
		} else {