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
} else if (sel == sel_quitMenuItemSelected_) {
			delegate.quitMenuItemSelected();
		}
		return 0;
	}
	
	
	private static NSControl new_NSControl(long arg0)
			throws NoSuchMethodException, InstantiationException,
			IllegalArgumentException, IllegalAccessException,
			InvocationTargetException {
		Class clazz = NSControl.class;
		Class PTR_CLASS = C.PTR_SIZEOF == 8 ? long.class : int.class;
		Constructor constructor = clazz
				.getConstructor(new Class[] { PTR_CLASS });
		return (NSControl) constructor
				.newInstance(new Object[] { wrapPointer(arg0) });
	}
	/**
	 * Specialized method. It's behavior is isolated and different enough from
	 * the usual invocation that custom code is warranted.
	 */
	private static long[] OS_object_getInstanceVariable(long delegateId,
			byte[] name) throws IllegalArgumentException,
			IllegalAccessException, InvocationTargetException,
			SecurityException, NoSuchMethodException {
		Class clazz = OS.class;
		Method method = null;
		Class PTR_CLASS = C.PTR_SIZEOF == 8 ? long.class : int.class;
		if (PTR_CLASS == long.class) {