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)
tests/org.eclipse.e4.ui.tests/src/org/eclipse/e4/ui/tests/reconciler/ModelReconcilerBindingContainerTest.java
private void testBindingContainer_Remove_KeyBinding(String keySequence)
			throws Exception {
		MApplication application = createApplication();
		MBindingTable bindingTable = MApplicationFactory.eINSTANCE
				.createBindingTable();
		application.getBindingTables().add(bindingTable);
		MKeyBinding keyBinding = MApplicationFactory.eINSTANCE
				.createKeyBinding();
		keyBinding.setKeySequence(keySequence);
		bindingTable.getBindings().add(keyBinding);
		saveModel();
		ModelReconciler reconciler = createModelReconciler();
		reconciler.recordChanges(application);
		bindingTable.getBindings().remove(0);
		Object state = reconciler.serialize();
		application = createApplication();
		bindingTable = application.getBindingTables().get(0);
		Collection<ModelDelta> deltas = constructDeltas(application, state);
		assertEquals(1, bindingTable.getBindings().size());
		keyBinding = bindingTable.getBindings().get(0);
		assertNull(keyBinding.getCommand());
		assertEquals(keySequence, keyBinding.getKeySequence());
		assertEquals(0, keyBinding.getParameters().size());
		applyAll(deltas);
		assertEquals(0, bindingTable.getBindings().size());
	}
	public void testBindingContainer_Remove_KeyBinding_Null() throws Exception {
		testBindingContainer_Remove_KeyBinding(null);
	}
	public void testBindingContainer_Remove_KeyBinding_Empty() throws Exception {