Bug 309489 NPE in E4CommandProcessor
I you forget to assign a command to a binding you get: java.lang.NullPointerException at org.eclipse.e4.workbench.ui.internal.E4CommandProcessor.defineBindingTable(E4CommandProcessor.java:142) at org.eclipse.e4.workbench.ui.internal.E4CommandProcessor.processBindings(E4CommandProcessor.java:97) at org.eclipse.e4.workbench.ui.internal.E4Workbench.init(E4Workbench.java:109) at org.eclipse.e4.workbench.ui.internal.E4Workbench.<init>(E4Workbench.java:71) at org.eclipse.e4.ui.workbench.swt.internal.E4Application.createE4Workbench(E4Application.java:170) at org.eclipse.e4.ui.workbench.swt.internal.E4Application.start(E4Application.java:81)
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/E4CommandProcessor.java
parameters = new HashMap<String, Object>();
				for (MParameter mParm : modelParms) {
					parameters.put(mParm.getName(), mParm.getValue());
				}
			}
			ParameterizedCommand cmd = cs.createCommand(binding.getCommand().getElementId(),
					parameters);
			TriggerSequence sequence = bs.createSequence(binding.getKeySequence());
			if (cmd == null || sequence == null) {
				System.err.println("Failed to handle binding: " + binding); 
			} else {
				Binding keyBinding = bs.createBinding(sequence, cmd,
						"org.eclipse.ui.defaultAcceleratorConfiguration", bindingContext.getId()); 
				table.addBinding(keyBinding);
			}
		}
	}
	private static void defineContexts(MBindingContext parent, MBindingContext current,
			ContextManager manager) {
		Context context = manager.getContext(current.getElementId());
		if (!context.isDefined()) {
			context.define(current.getName(), current.getDescription(), parent == null ? null
					: parent.getElementId());
		}
		for (MBindingContext child : current.getChildren()) {
			defineContexts(current, child, manager);
		}
	}
}