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 (!featureChange.getFeature().isTransient()) {
				String featureName = featureChange.getFeatureName();
				
				if (shouldPersist(featureName)) {
					if (modelChange == null) {
						
						modelChange = createElement(document, object);
					}
					
					Element deltaElement = createDeltaElement(document, object, featureChange,
							featureName);
					modelChange.appendChild(deltaElement);
				}
			}
		}
		return modelChange;
	}
	private String getEntryElementName(EObject object, Entry<?, ?> entry) {
		if (object instanceof MContext) {
			for (Entry<String, String> property : ((MContext) object).getProperties().entrySet()) {
				if (property == entry) {
					return CONTEXT_PROPERTIES_ATTNAME;
				}
			}
		}
		if (object instanceof MContribution) {
			for (Entry<String, String> state : ((MContribution) object).getPersistedState()
					.entrySet()) {
				if (state == entry) {