Bug 90415 [Contributions] NPE in ActionContributionItem.update when trying to set accelerator in menu
Exception in thread "main" java.lang.NullPointerException at org.eclipse.jface.action.ActionContributionItem.update(ActionContributionItem.java:749) at org.eclipse.jface.action.ActionContributionItem.fill(ActionContributionItem.java:281) at org.eclipse.jface.action.MenuManager.update(MenuManager.java:627) at org.eclipse.jface.action.MenuManager.update(MenuManager.java:549) at org.eclipse.jface.action.MenuManager.createMenuBar(MenuManager.java:158) at org.eclipse.jface.window.ApplicationWindow.createTrimWidgets(ApplicationWindow.java:332) at org.eclipse.jface.window.ApplicationWindow.configureShell(ApplicationWindow.java:320) at org.eclipse.jface.window.Window.createShell(Window.java:483) at org.eclipse.jface.window.Window.create(Window.java:417) at org.eclipse.jface.window.Window.open(Window.java:770) at MenuActionTest.main(MenuActionTest.java:76)
bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java
* the action using the action's style. If the action's checked property has
     * been set, the button is created and primed to the value of the checked
     * property.
     */
    public void fill(Composite parent) {
        if (widget == null && parent != null) {
            int flags = SWT.PUSH;
            if (action != null) {
                if (action.getStyle() == IAction.AS_CHECK_BOX)
                    flags = SWT.TOGGLE;
                if (action.getStyle() == IAction.AS_RADIO_BUTTON)
                    flags = SWT.RADIO;
            }
            Button b = new Button(parent, flags);
            b.setData(this);
            b.addListener(SWT.Dispose, getButtonListener());
            
            b.addListener(SWT.Selection, getButtonListener());
            if (action.getHelpListener() != null)
                b.addHelpListener(action.getHelpListener());
            widget = b;
            update(null);
            
            action.addPropertyChangeListener(propertyListener);
            if (action != null) {
                String commandId = action.getActionDefinitionId();
                ExternalActionManager.ICallback callback = ExternalActionManager
                        .getInstance().getCallback();
                if ((callback != null) && (commandId != null)) {
                    callback.addPropertyChangeListener(commandId,