Bug 320989 NPE in CocoaUIHandler
This happened in my Tutorial-RCP when opening a second window and hitting CMD+Q. !ENTRY org.eclipse.e4.ui.workbench 4 0 2010-07-27 12:18:00.823 !MESSAGE Internal Error !STACK 0 java.lang.NullPointerException at org.eclipse.e4.ui.workbench.renderers.swt.cocoa.CocoaUIHandler.findAction(CocoaUIHandler.java:662) at org.eclipse.e4.ui.workbench.renderers.swt.cocoa.CocoaUIHandler.runAction(CocoaUIHandler.java:554) at org.eclipse.e4.ui.workbench.renderers.swt.cocoa.CocoaUIHandler.quitMenuItemSelected(CocoaUIHandler.java:725) at org.eclipse.e4.ui.workbench.renderers.swt.cocoa.CocoaUIHandler.actionProc(CocoaUIHandler.java:748) at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) at org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4582) at org.eclipse.swt.widgets.Display.applicationProc(Display.java:4659) at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) at org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:115) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3274) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:713)
bundles/org.eclipse.e4.ui.workbench.renderers.swt.cocoa/src/org/eclipse/e4/ui/workbench/renderers/swt/cocoa/CocoaUIHandler.java
if (menu == null) {
			return;
		}
		for (MMenuElement elmt : menu.getChildren()) {
			if (elmt instanceof MMenu) {
				redirectHandledMenuItems((MMenu) elmt);
			} else if (elmt instanceof MMenuItem) {
				redirectHandledMenuItem((MMenuItem) elmt);
			}
		}
	}
	private void redirectHandledMenuItem(MMenuItem item) {
		String elmtId = item.getElementId();
		if (elmtId != null
				&& (elmtId.equals(MENU_ID_ABOUT)
						|| elmtId.equals(MENU_ID_PREFERENCES) || elmtId
						.equals(MENU_ID_QUIT))) {
			item.setVisible(false);
		} else if (item instanceof MHandledMenuItem) {
			MHandledMenuItem mhmi = (MHandledMenuItem) item;
			elmtId = mhmi.getCommand() == null ? null : mhmi.getCommand()
					.getElementId();
			if (elmtId != null
					&& (elmtId.equals(MENU_ID_ABOUT)
							|| elmtId.equals(MENU_ID_PREFERENCES) || elmtId
							.equals(MENU_ID_QUIT))) {
				item.setVisible(false);
			}
		}
	}