Project: Eclipse_Platform_UI
Bug 387247 NPE in MakeHandlersGo#isEnabled()
Reported: 2012-08-14 17:08:43 | Status: verified fixed

Closing a workbench window to terminate an app threw up an NPE: Thread [main] (Suspended (exception NullPointerException)) MakeHandlersGo.isEnabled() line: 137 Command.isEnabled() line: 862 CommandContributionItem.isEnabled() line: 981 CommandContributionItem.updateMenuItem() line: 628 CommandContributionItem.update(String) line: 580 CommandContributionItem.update() line: 569 CommandContributionItem$1.bindingManagerChanged(BindingManagerEvent) line: 1001 BindingManager.fireBindingManagerChanged(BindingManagerEvent) line: 900 BindingManager.setActiveBindings(Map, Map, Map, Map) line: 2176 BindingManager.recomputeBindings() line: 1762 BindingManager.contextManagerChanged(ContextManagerEvent) line: 689 ContextManager.fireContextManagerChanged(ContextManagerEvent) line: 165 ContextManager.setActiveContextIds(Set) line: 295 BindingServiceImpl.setContextIds(Set<String>) line: 228 GeneratedMethodAccessor18.invoke(Object, Object[]) line: not available DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object...) line: 597 MethodRequestor.execute() line: 56 ContextObjectSupplier$ContextInjectionListener.update(IEclipseContext, int, Object[]) line: 77 TrackableComputationExt.update(ContextChangeEvent) line: 106 EclipseContext.processScheduled(Set<Scheduled>) line: 308 EclipseContext.set(String, Object) line: 322 EclipseContext.deactivate() line: 623 PartRenderingEngine.clearContext(MContext) line: 883 PartRenderingEngine.safeRemoveGui(MUIElement) line: 868 PartRenderingEngine.access$3(PartRenderingEngine, MUIElement) line: 775 PartRenderingEngine$8.run() line: 770 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.removeGui(MUIElement) line: 755 ElementReferenceRenderer.disposeWidget(MUIElement) line: 122 PartRenderingEngine.safeRemoveGui(MUIElement) line: 847 PartRenderingEngine.access$3(PartRenderingEngine, MUIElement) line: 775 PartRenderingEngine$8.run() line: 770 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.removeGui(MUIElement) line: 755 PartRenderingEngine.safeRemoveGui(MUIElement) line: 808 PartRenderingEngine.access$3(PartRenderingEngine, MUIElement) line: 775 PartRenderingEngine$8.run() line: 770 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.removeGui(MUIElement) line: 755 PartRenderingEngine.safeRemoveGui(MUIElement) line: 808 PartRenderingEngine.access$3(PartRenderingEngine, MUIElement) line: 775 PartRenderingEngine$8.run() line: 770 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.removeGui(MUIElement) line: 755 PartRenderingEngine.safeRemoveGui(MUIElement) line: 808 PartRenderingEngine.access$3(PartRenderingEngine, MUIElement) line: 775 PartRenderingEngine$8.run() line: 770 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.removeGui(MUIElement) line: 755 PartRenderingEngine.safeRemoveGui(MUIElement) line: 808 PartRenderingEngine.access$3(PartRenderingEngine, MUIElement) line: 775 PartRenderingEngine$8.run() line: 770 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.removeGui(MUIElement) line: 755 PartRenderingEngine.safeRemoveGui(MUIElement) line: 808 PartRenderingEngine.access$3(PartRenderingEngine, MUIElement) line: 775 PartRenderingEngine$8.run() line: 770 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.removeGui(MUIElement) line: 755 PartRenderingEngine.safeRemoveGui(MUIElement) line: 801 PartRenderingEngine.access$3(PartRenderingEngine, MUIElement) line: 775 PartRenderingEngine$8.run() line: 770 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.removeGui(MUIElement) line: 755 PartRenderingEngine.stop() line: 1081 Workbench.busyClose(boolean) line: 1125 Workbench.access$16(Workbench, boolean) line: 1005 Workbench$17.run() line: 1186 BusyIndicator.showWhile(Display, Runnable) line: 70 Workbench.close(int, boolean) line: 1184 Workbench.close() line: 1157 WorkbenchWindow.busyClose(boolean) line: 1158 WorkbenchWindow.access$14(WorkbenchWindow, boolean) line: 1131 WorkbenchWindow$10.run() line: 1187 BusyIndicator.showWhile(Display, Runnable) line: 70 WorkbenchWindow.close(boolean) line: 1185 WorkbenchWindow.close() line: 1197 WorkbenchWindow$6.close(MWindow) line: 445 WBWRenderer$10.shellClosed(ShellEvent) line: 564 TypedListener.handleEvent(Event) line: 98 EventTable.sendEvent(Event) line: 84 Shell(Widget).sendEvent(Event) line: 1276 Shell(Widget).sendEvent(int, Event, boolean) line: 1300 Shell(Widget).sendEvent(int, Event) line: 1285 Shell.closeWidget() line: 617 Shell.gtk_delete_event(long, long) line: 1191 Shell(Widget).windowProc(long, long, long) line: 1750 Shell(Control).windowProc(long, long, long) line: 5116 Display.windowProc(long, long, long) line: 4369 OS._gtk_main_do_event(long) line: not available [native method] OS.gtk_main_do_event(long) line: 8307 Display.eventProc(long, long) line: 1192 OS._g_main_context_iteration(long, boolean) line: not available [native method] OS.g_main_context_iteration(long, boolean) line: 2332 Display.readAndDispatch() line: 3177 PartRenderingEngine$9.run() line: 1029 Realm.runWithDefault(Realm, Runnable) line: 332 PartRenderingEngine.run(MApplicationElement, IEclipseContext) line: 923 E4Workbench.createAndRunUI(MApplicationElement) line: 86 Workbench$5.run() line: 592 Realm.runWithDefault(Realm, Runnable) line: 332 Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 547 PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 149 DSApplication.start(IApplicationContext) line: 58 EclipseAppHandle.run(Object) line: 196 EclipseAppLauncher.runApplication(Object) line: 110 EclipseAppLauncher.start(Object) line: 79 EclipseStarter.run(Object) line: 353 EclipseStarter.run(String[], Runnable) line: 180 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object...) line: 597 Main.invokeFramework(String[], URL[]) line: 629 Main.basicRun(String[]) line: 584 Main.run(String[]) line: 1438 Main.main(String[]) line: 1414

Files changed in fix:
bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/MakeHandlersGo.java