Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 348205 - NullPointerException in xml editor
Summary: NullPointerException in xml editor
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 3.6   Edit
Hardware: Other Linux-GTK
: P3 major with 1 vote (vote)
Target Milestone: 3.7.2   Edit
Assignee: Bogdan Gheorghe CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 359891 363630 364395 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-06-03 09:25 EDT by Eugene CLA
Modified: 2012-03-23 09:57 EDT (History)
17 users (show)

See Also:
grant_gayed: review+


Attachments
My emerge --info (6.22 KB, text/x-log)
2011-06-03 09:43 EDT, Eugene CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Eugene CLA 2011-06-03 09:25:07 EDT
Build Identifier: 201105041000 springsource-tool-suite-2.6.1.SR1-e3.6.2-linux

I periodically get next error when work in xml-editor:
---------------------
!ENTRY org.eclipse.ui 4 0 2011-06-02 10:37:19.502
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NullPointerException
at org.eclipse.swt.widgets.MenuItem.getAccelGroup(MenuItem.java:316)
at org.eclipse.swt.widgets.MenuItem.setEnabled(MenuItem.java:640)
at org.eclipse.ui.menus.CommandContributionItem.updateMenuItem(CommandContributionItem.java:627)
at org.eclipse.ui.menus.CommandContributionItem.update(CommandContributionItem.java:576)
at org.eclipse.jface.action.MenuManager.update(MenuManager.java:876)
at org.eclipse.jface.action.MenuManager.update(MenuManager.java:876)
at org.eclipse.ui.internal.Workbench.updateActiveWorkbenchWindowMenuManager(Workbench.java:3276)
at org.eclipse.ui.internal.Workbench.access$0(Workbench.java:3238)
at org.eclipse.ui.internal.Workbench$2.bindingManagerChanged(Workbench.java:3224)
at org.eclipse.jface.bindings.BindingManager.fireBindingManagerChanged(BindingManager.java:900)
at org.eclipse.jface.bindings.BindingManager.setActiveBindings(BindingManager.java:2176)
at org.eclipse.jface.bindings.BindingManager.recomputeBindings(BindingManager.java:1742)
at org.eclipse.jface.bindings.BindingManager.contextManagerChanged(BindingManager.java:689)
at org.eclipse.core.commands.contexts.ContextManager.fireContextManagerChanged(ContextManager.java:165)
at org.eclipse.core.commands.contexts.ContextManager.setEventCaching(ContextManager.java:324)
at org.eclipse.core.commands.contexts.ContextManager.deferUpdates(ContextManager.java:83)
at org.eclipse.ui.internal.contexts.ContextAuthority.sourceChanged(ContextAuthority.java:673)
at org.eclipse.ui.internal.services.ExpressionAuthority.sourceChanged(ExpressionAuthority.java:310)
at org.eclipse.ui.internal.services.ExpressionAuthority.sourceChanged(ExpressionAuthority.java:290)
at org.eclipse.ui.AbstractSourceProvider.fireSourceChanged(AbstractSourceProvider.java:99)
at org.eclipse.ui.internal.services.WorkbenchSourceProvider.access$10(WorkbenchSourceProvider.java:1)
at org.eclipse.ui.internal.services.WorkbenchSourceProvider$6.handleEvent(WorkbenchSourceProvider.java:775)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1524)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1257)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1263)
at org.eclipse.swt.widgets.Shell.filterProc(Shell.java:730)
at org.eclipse.swt.widgets.Display.filterProc(Display.java:1536)
at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2237)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3159)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at org.eclipse.ui.internal.views.log.EventDetailsDialog.open(EventDetailsDialog.java:176)
at org.eclipse.ui.internal.views.log.EventDetailsDialogAction.run(EventDetailsDialogAction.java:98)
at org.eclipse.ui.internal.views.log.LogView$15.doubleClick(LogView.java:536)
at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:824)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:822)
at org.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.java:1421)
at org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1225)
at org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:238)
at org.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.java:235)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:296)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
at org.eclipse.equinox.launcher.Main.main(Main.java:1384)

!ENTRY org.eclipse.ui 4 0 2011-06-02 10:37:19.517
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NullPointerException
at org.eclipse.swt.widgets.MenuItem.getAccelGroup(MenuItem.java:316)
at org.eclipse.swt.widgets.MenuItem.setEnabled(MenuItem.java:640)
at org.eclipse.ui.menus.CommandContributionItem.updateMenuItem(CommandContributionItem.java:627)
at org.eclipse.ui.menus.CommandContributionItem.update(CommandContributionItem.java:576)
at org.eclipse.jface.action.MenuManager.update(MenuManager.java:876)
at org.eclipse.jface.action.MenuManager.update(MenuManager.java:876)
at org.eclipse.ui.internal.Workbench.updateActiveWorkbenchWindowMenuManager(Workbench.java:3276)
at org.eclipse.ui.internal.Workbench.access$0(Workbench.java:3238)
at org.eclipse.ui.internal.Workbench$2.bindingManagerChanged(Workbench.java:3224)
at org.eclipse.jface.bindings.BindingManager.fireBindingManagerChanged(BindingManager.java:900)
at org.eclipse.jface.bindings.BindingManager.setActiveBindings(BindingManager.java:2176)
at org.eclipse.jface.bindings.BindingManager.recomputeBindings(BindingManager.java:1742)
at org.eclipse.jface.bindings.BindingManager.contextManagerChanged(BindingManager.java:689)
at org.eclipse.core.commands.contexts.ContextManager.fireContextManagerChanged(ContextManager.java:165)
at org.eclipse.core.commands.contexts.ContextManager.removeActiveContext(ContextManager.java:245)
at org.eclipse.ui.internal.contexts.ContextAuthority.updateContext(ContextAuthority.java:758)
at org.eclipse.ui.internal.contexts.ContextAuthority.deactivateContext(ContextAuthority.java:344)
at org.eclipse.ui.internal.contexts.ContextAuthority$1.widgetDisposed(ContextAuthority.java:283)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:123)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1263)
at org.eclipse.swt.widgets.Widget.release(Widget.java:1080)
at org.eclipse.swt.widgets.Control.release(Control.java:3304)
at org.eclipse.swt.widgets.Widget.dispose(Widget.java:462)
at org.eclipse.swt.widgets.Shell.dispose(Shell.java:2241)
at org.eclipse.jface.window.Window.close(Window.java:335)
at org.eclipse.jface.dialogs.Dialog.close(Dialog.java:979)
at org.eclipse.jface.dialogs.TrayDialog.close(TrayDialog.java:179)
at org.eclipse.ui.internal.statushandlers.InternalDialog.close(InternalDialog.java:710)
at org.eclipse.jface.dialogs.Dialog.okPressed(Dialog.java:940)
at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:472)
at org.eclipse.ui.internal.statushandlers.InternalDialog.buttonPressed(InternalDialog.java:190)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at org.eclipse.ui.internal.views.log.EventDetailsDialog.open(EventDetailsDialog.java:176)
at org.eclipse.ui.internal.views.log.EventDetailsDialogAction.run(EventDetailsDialogAction.java:98)
at org.eclipse.ui.internal.views.log.LogView$15.doubleClick(LogView.java:536)
at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:824)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:822)
at org.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.java:1421)
at org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1225)
at org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:238)
at org.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.java:235)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:296)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
---------------------
If this error emerged, when emerge StackOverFlow error and I must restart STS.


Reproducible: Sometimes

Steps to Reproduce:
1. Active use xml editor
2. Sometime emerge this error
3.
Comment 1 Remy Suen CLA 2011-06-03 09:31:38 EDT
Hi Eugene, what distribution and desktop environment/window manager are you using? What version(s) of GTK+ do you have installed on your system?
Comment 2 Eugene CLA 2011-06-03 09:43:22 EDT
Created attachment 197300 [details]
My emerge --info

My emerge --info
Comment 3 Eugene CLA 2011-06-03 09:44:16 EDT
Hi Remy!
I use Gentoo Linux x86-64.
version gtk+:  x11-libs/gtk+ - 2.24.2
Comment 4 Eugene CLA 2011-06-03 09:46:33 EDT
sorry:

version gtk+:  x11-libs/gtk+ - 2.24.3
Comment 5 Felipe Heidrich CLA 2011-06-03 10:08:03 EDT
what is the version of eclipse and/or swt that this product is build on top ?
Comment 6 Eugene CLA 2011-06-03 10:21:04 EDT
(In reply to comment #5)
> what is the version of eclipse and/or swt that this product is build on top ?

Eclipse-3.6.2-linux
Comment 7 Robert Munteanu CLA 2011-08-11 05:29:07 EDT
Getting this as well with Eclipse 3.7.

Linux x86_64
GTK 2.21.1
KDE 4.6
Comment 8 Aaron Digulla CLA 2011-09-28 11:41:29 EDT
Same error here on Linux x86/64, gtk 2.24.4-0ubuntu2.

It sometimes happens during shutdown, while closing all editors, or just randomly in the middle of the day.

Just a few moments ago, I closed all editors and got an empty dialog box. Eclipse was dead after that and I had to kill it.

Is it possible that this menu wasn't realized, yet? That would explain why it doesn't have a parent.

Also looking at the code, it's probably safe to add a "if( shell != null )" check in there. If you want, you can log an error.

Accelerator code shouldn't crash/hang Eclipse. :-)
Comment 9 Felipe Heidrich CLA 2011-10-03 11:03:58 EDT
Arun, please investigate
Comment 10 Remy Suen CLA 2011-10-05 09:24:33 EDT
*** Bug 359891 has been marked as a duplicate of this bug. ***
Comment 11 Paul Webster CLA 2011-11-14 08:10:23 EST
*** Bug 363630 has been marked as a duplicate of this bug. ***
Comment 12 Remy Suen CLA 2011-11-21 13:30:04 EST
*** Bug 364395 has been marked as a duplicate of this bug. ***
Comment 13 Danny Staple CLA 2011-11-21 14:22:46 EST
Note this occurs also (according to duplicate marking) when closing a python file editor.
Comment 14 Chris Field CLA 2012-01-03 16:04:23 EST
I'm getting the same error.  

SpringSource Tool Suite 
Version: 2.8.1.RELEASE
Build Id: 201111221000

Eclipse Platform
Version: 3.7.1.r37x_v20110729-9gF7UHOxFtniV7mI3T556iZN9AU8bEZ1lHMcVK
Build id: M20110909-1335

I am using Ubuntu 11.10 oneirc
3.0.0-13-generic #22-Ubuntu SMP Wed Nov 2 13:27:26 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux


It seems to just come up on its own if I leave eclipse running for more than a day.  But sometimes it comes up sooner.  Mostly I am just opening/closing projects and viewing source files/history (via Maven plugin).  After the first null pointer I get spammed by null pointer dialogs, file/exit will no longer work and sometimes hitting the x on the window will not work but other times it will (after closing all the null pointer dialogs).



java.lang.NullPointerException
        at org.eclipse.swt.widgets.MenuItem.getAccelGroup(MenuItem.java:316)
        at org.eclipse.swt.widgets.MenuItem.setEnabled(MenuItem.java:657)
        at org.eclipse.ui.menus.CommandContributionItem.updateMenuItem(CommandContributionItem.java:631)
        at org.eclipse.ui.menus.CommandContributionItem.update(CommandContributionItem.java:580)
        at org.eclipse.jface.action.MenuManager.update(MenuManager.java:880)
        at org.eclipse.jface.action.MenuManager.update(MenuManager.java:880)
        at org.eclipse.ui.internal.Workbench.updateActiveWorkbenchWindowMenuManager(Workbench.java:3337)
        at org.eclipse.ui.internal.Workbench.access$0(Workbench.java:3299)
        at org.eclipse.ui.internal.Workbench$2.bindingManagerChanged(Workbench.java:3285)
        at org.eclipse.jface.bindings.BindingManager.fireBindingManagerChanged(BindingManager.java:900)
        at org.eclipse.jface.bindings.BindingManager.setActiveBindings(BindingManager.java:2176)
        at org.eclipse.jface.bindings.BindingManager.recomputeBindings(BindingManager.java:1742)
        at org.eclipse.jface.bindings.BindingManager.contextManagerChanged(BindingManager.java:689)
        at org.eclipse.core.commands.contexts.ContextManager.fireContextManagerChanged(ContextManager.java:165)
        at org.eclipse.core.commands.contexts.ContextManager.setEventCaching(ContextManager.java:324)
        at org.eclipse.core.commands.contexts.ContextManager.deferUpdates(ContextManager.java:83)
        at org.eclipse.ui.internal.contexts.ContextAuthority.sourceChanged(ContextAuthority.java:673)
        at org.eclipse.ui.internal.services.ExpressionAuthority.sourceChanged(ExpressionAuthority.java:310)
        at org.eclipse.ui.internal.services.ExpressionAuthority.sourceChanged(ExpressionAuthority.java:290)
        at org.eclipse.ui.AbstractSourceProvider.fireSourceChanged(AbstractSourceProvider.java:99)
        at org.eclipse.ui.internal.services.WorkbenchSourceProvider.access$14(WorkbenchSourceProvider.java:1)
        at org.eclipse.ui.internal.services.WorkbenchSourceProvider$6.handleEvent(WorkbenchSourceProvider.java:772)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1531)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1257)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1263)
        at org.eclipse.swt.widgets.Shell.filterProc(Shell.java:731)
        at org.eclipse.swt.widgets.Display.filterProc(Display.java:1543)
        at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
        at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276)
        at org.eclipse.swt.widgets.Shell.setVisible(Shell.java:2051)
        at org.eclipse.swt.widgets.Shell.open(Shell.java:1457)
        at org.eclipse.jface.window.Window.open(Window.java:797)
        at org.eclipse.ui.internal.statushandlers.InternalDialog.open(InternalDialog.java:327)
        at org.eclipse.ui.internal.statushandlers.WorkbenchStatusDialogManagerImpl.doAddStatusAdapter(WorkbenchStatusDialogManagerImpl.java:270)
        at org.eclipse.ui.internal.statushandlers.WorkbenchStatusDialogManagerImpl.addStatusAdapter(WorkbenchStatusDialogManagerImpl.java:197)
        at org.eclipse.ui.statushandlers.WorkbenchStatusDialogManager.addStatusAdapter(WorkbenchStatusDialogManager.java:156)
        at org.eclipse.ui.statushandlers.WorkbenchErrorHandler.showStatusAdapter(WorkbenchErrorHandler.java:101)
        at org.eclipse.ui.statushandlers.WorkbenchErrorHandler.handle(WorkbenchErrorHandler.java:57)
        at org.eclipse.ui.internal.ide.IDEWorkbenchErrorHandler.handle(IDEWorkbenchErrorHandler.java:108)
        at org.eclipse.ui.internal.WorkbenchErrorHandlerProxy.handle(WorkbenchErrorHandlerProxy.java:36)
        at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:189)
        at org.eclipse.ui.internal.JFaceUtil$3.show(JFaceUtil.java:70)
        at org.eclipse.jface.util.SafeRunnable.handleException(SafeRunnable.java:67)
        at org.eclipse.core.runtime.SafeRunner.handleException(SafeRunner.java:75)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:44)
        at org.eclipse.ui.internal.Workbench.fireWindowDeactivated(Workbench.java:1019)
        at org.eclipse.ui.internal.WorkbenchWindow$28.shellDeactivated(WorkbenchWindow.java:3162)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:111)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1263)
        at org.eclipse.swt.widgets.Shell.filterProc(Shell.java:748)
        at org.eclipse.swt.widgets.Display.filterProc(Display.java:1543)
        at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
        at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207)
        at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
        at org.eclipse.jface.window.Window.open(Window.java:801)
        at org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.java:334)
        at org.eclipse.ui.internal.SaveablesList.promptForSaving(SaveablesList.java:529)
        at org.eclipse.ui.internal.SaveablesList.promptForSavingIfNecessary(SaveablesList.java:433)
        at org.eclipse.ui.internal.SaveablesList.preCloseParts(SaveablesList.java:388)
        at org.eclipse.ui.internal.SaveablesList.preCloseParts(SaveablesList.java:347)
        at org.eclipse.ui.internal.WorkbenchPage.closeEditors(WorkbenchPage.java:1426)
        at org.eclipse.ui.internal.WorkbenchPage.closeEditor(WorkbenchPage.java:1514)
        at org.eclipse.ui.internal.EditorPane.doHide(EditorPane.java:61)
        at org.eclipse.ui.internal.PartStack.close(PartStack.java:537)
        at org.eclipse.ui.internal.EditorStack.close(EditorStack.java:206)
        at org.eclipse.ui.internal.PartStack$1.close(PartStack.java:120)
        at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:83)
        at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:269)
        at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:278)
        at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder.access$1(DefaultTabFolder.java:1)
        at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder$1.closeButtonPressed(DefaultTabFolder.java:71)
        at org.eclipse.ui.internal.presentations.PaneFolder.notifyCloseListeners(PaneFolder.java:631)
        at org.eclipse.ui.internal.presentations.PaneFolder$3.close(PaneFolder.java:206)
        at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1598)
        at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:261)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
        at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
java.lang.NullPointerException
        at org.eclipse.swt.widgets.MenuItem.getAccelGroup(MenuItem.java:316)
        at org.eclipse.swt.widgets.MenuItem.setEnabled(MenuItem.java:657)
        at org.eclipse.ui.menus.CommandContributionItem.updateMenuItem(CommandContributionItem.java:631)
        at org.eclipse.ui.menus.CommandContributionItem.update(CommandContributionItem.java:580)
        at org.eclipse.jface.action.MenuManager.update(MenuManager.java:880)
        at org.eclipse.jface.action.MenuManager.update(MenuManager.java:880)
        at org.eclipse.ui.internal.Workbench.updateActiveWorkbenchWindowMenuManager(Workbench.java:3337)
        at org.eclipse.ui.internal.Workbench.access$0(Workbench.java:3299)
        at org.eclipse.ui.internal.Workbench$2.bindingManagerChanged(Workbench.java:3285)
        at org.eclipse.jface.bindings.BindingManager.fireBindingManagerChanged(BindingManager.java:900)
        at org.eclipse.jface.bindings.BindingManager.setActiveBindings(BindingManager.java:2176)
        at org.eclipse.jface.bindings.BindingManager.recomputeBindings(BindingManager.java:1742)
        at org.eclipse.jface.bindings.BindingManager.contextManagerChanged(BindingManager.java:689)
        at org.eclipse.core.commands.contexts.ContextManager.fireContextManagerChanged(ContextManager.java:165)
        at org.eclipse.core.commands.contexts.ContextManager.setEventCaching(ContextManager.java:324)
        at org.eclipse.core.commands.contexts.ContextManager.deferUpdates(ContextManager.java:83)
        at org.eclipse.ui.internal.contexts.ContextAuthority.sourceChanged(ContextAuthority.java:673)
        at org.eclipse.ui.internal.services.ExpressionAuthority.sourceChanged(ExpressionAuthority.java:310)
        at org.eclipse.ui.internal.services.ExpressionAuthority.sourceChanged(ExpressionAuthority.java:290)
        at org.eclipse.ui.AbstractSourceProvider.fireSourceChanged(AbstractSourceProvider.java:99)
        at org.eclipse.ui.internal.services.WorkbenchSourceProvider.access$14(WorkbenchSourceProvider.java:1)
        at org.eclipse.ui.internal.services.WorkbenchSourceProvider$6.handleEvent(WorkbenchSourceProvider.java:772)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1531)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1257)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1263)
        at org.eclipse.swt.widgets.Shell.filterProc(Shell.java:731)
        at org.eclipse.swt.widgets.Display.filterProc(Display.java:1543)
        at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
        at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276)
        at org.eclipse.swt.widgets.Shell.setVisible(Shell.java:2051)
        at org.eclipse.swt.widgets.Shell.open(Shell.java:1457)
        at org.eclipse.jface.window.Window.open(Window.java:797)
        at org.eclipse.ui.internal.statushandlers.InternalDialog.open(InternalDialog.java:327)
        at org.eclipse.ui.internal.statushandlers.WorkbenchStatusDialogManagerImpl.doAddStatusAdapter(WorkbenchStatusDialogManagerImpl.java:270)
        at org.eclipse.ui.internal.statushandlers.WorkbenchStatusDialogManagerImpl.addStatusAdapter(WorkbenchStatusDialogManagerImpl.java:197)
        at org.eclipse.ui.statushandlers.WorkbenchStatusDialogManager.addStatusAdapter(WorkbenchStatusDialogManager.java:156)
        at org.eclipse.ui.statushandlers.WorkbenchErrorHandler.showStatusAdapter(WorkbenchErrorHandler.java:101)
        at org.eclipse.ui.statushandlers.WorkbenchErrorHandler.handle(WorkbenchErrorHandler.java:57)
        at org.eclipse.ui.internal.ide.IDEWorkbenchErrorHandler.handle(IDEWorkbenchErrorHandler.java:108)
        at org.eclipse.ui.internal.WorkbenchErrorHandlerProxy.handle(WorkbenchErrorHandlerProxy.java:36)
        at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:189)
        at org.eclipse.ui.internal.JFaceUtil$3.show(JFaceUtil.java:70)
        at org.eclipse.jface.util.SafeRunnable.handleException(SafeRunnable.java:67)
        at org.eclipse.core.runtime.SafeRunner.handleException(SafeRunner.java:75)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:44)
        at org.eclipse.ui.internal.Workbench.fireWindowDeactivated(Workbench.java:1019)
        at org.eclipse.ui.internal.WorkbenchWindow$28.shellDeactivated(WorkbenchWindow.java:3162)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:111)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1263)
        at org.eclipse.swt.widgets.Shell.filterProc(Shell.java:748)
        at org.eclipse.swt.widgets.Display.filterProc(Display.java:1543)
        at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
        at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207)
        at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
        at org.eclipse.jface.window.Window.open(Window.java:801)
        at org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.java:334)
        at org.eclipse.jface.dialogs.MessageDialogWithToggle.open(MessageDialogWithToggle.java:114)
        at org.eclipse.jface.dialogs.MessageDialogWithToggle.openOkCancelConfirm(MessageDialogWithToggle.java:209)
        at org.eclipse.ui.internal.ide.application.IDEWorkbenchWindowAdvisor.promptOnExit(IDEWorkbenchWindowAdvisor.java:218)
        at org.eclipse.ui.internal.ide.application.IDEWorkbenchWindowAdvisor.preWindowShellClose(IDEWorkbenchWindowAdvisor.java:171)
        at org.eclipse.ui.internal.WorkbenchWindow.fireWindowShellClosing(WorkbenchWindow.java:1370)
        at org.eclipse.ui.internal.WorkbenchWindow.canHandleShellCloseEvent(WorkbenchWindow.java:850)
        at org.eclipse.jface.window.Window$3.shellClosed(Window.java:686)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:98)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267)
        at org.eclipse.swt.widgets.Shell.closeWidget(Shell.java:617)
        at org.eclipse.swt.widgets.Shell.gtk_delete_event(Shell.java:1189)
        at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1735)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:5016)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4408)
        at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
        at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8422)
        at org.eclipse.swt.widgets.Display.eventProc(Display.java:1245)
        at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
        at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
        at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

(SpringSource Tool Suite:18532): LIBDBUSMENU-GTK-CRITICAL **: watch_submenu: assertion `GTK_IS_MENU_SHELL(menu)' failed

(SpringSource Tool Suite:18532): LIBDBUSMENU-GTK-CRITICAL **: watch_submenu: assertion `GTK_IS_MENU_SHELL(menu)' failed
org.eclipse.swt.SWTException: Widget is disposed
        at org.eclipse.swt.SWT.error(SWT.java:4282)
        at org.eclipse.swt.SWT.error(SWT.java:4197)
        at org.eclipse.swt.SWT.error(SWT.java:4168)
        at org.eclipse.swt.widgets.Widget.error(Widget.java:466)
        at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:403)
        at org.eclipse.swt.widgets.Control.getParent(Control.java:2632)
        at org.eclipse.swt.widgets.Shell.getShells(Shell.java:1133)
        at org.eclipse.ui.internal.progress.ProgressManagerUtil.getModalChildExcluding(ProgressManagerUtil.java:314)
        at org.eclipse.ui.internal.progress.ProgressManagerUtil.getModalShellExcluding(ProgressManagerUtil.java:283)
        at org.eclipse.ui.internal.progress.ProgressManagerUtil.getDefaultParent(ProgressManagerUtil.java:338)
        at org.eclipse.ui.internal.statushandlers.InternalDialog.<init>(InternalDialog.java:154)
        at org.eclipse.ui.internal.statushandlers.WorkbenchStatusDialogManagerImpl.doAddStatusAdapter(WorkbenchStatusDialogManagerImpl.java:259)
        at org.eclipse.ui.internal.statushandlers.WorkbenchStatusDialogManagerImpl.addStatusAdapter(WorkbenchStatusDialogManagerImpl.java:197)
        at org.eclipse.ui.statushandlers.WorkbenchStatusDialogManager.addStatusAdapter(WorkbenchStatusDialogManager.java:156)
        at org.eclipse.ui.statushandlers.WorkbenchErrorHandler.showStatusAdapter(WorkbenchErrorHandler.java:101)
        at org.eclipse.ui.statushandlers.WorkbenchErrorHandler.handle(WorkbenchErrorHandler.java:57)
        at org.eclipse.ui.internal.ide.IDEWorkbenchErrorHandler.handle(IDEWorkbenchErrorHandler.java:108)
        at org.eclipse.ui.internal.WorkbenchErrorHandlerProxy.handle(WorkbenchErrorHandlerProxy.java:36)
        at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:189)
        at org.eclipse.ui.internal.JFaceUtil$3.show(JFaceUtil.java:70)
        at org.eclipse.jface.util.SafeRunnable.handleException(SafeRunnable.java:67)
        at org.eclipse.core.runtime.SafeRunner.handleException(SafeRunner.java:75)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:44)
        at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1106)
        at org.eclipse.ui.internal.Workbench.access$15(Workbench.java:1035)
        at org.eclipse.ui.internal.Workbench$25.run(Workbench.java:1279)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
        at org.eclipse.ui.internal.Workbench.close(Workbench.java:1277)
        at org.eclipse.ui.internal.Workbench.close(Workbench.java:1249)
        at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:727)
        at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:715)
        at org.eclipse.ui.internal.WorkbenchWindow$5.run(WorkbenchWindow.java:860)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
        at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:858)
        at org.eclipse.jface.window.Window.handleShellCloseEvent(Window.java:741)
        at org.eclipse.jface.window.Window$3.shellClosed(Window.java:687)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:98)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267)
        at org.eclipse.swt.widgets.Shell.closeWidget(Shell.java:617)
        at org.eclipse.swt.widgets.Shell.gtk_delete_event(Shell.java:1189)
        at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1735)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:5016)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4408)
        at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
        at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8422)
        at org.eclipse.swt.widgets.Display.eventProc(Display.java:1245)
        at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
        at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
        at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Comment 15 Felipe Heidrich CLA 2012-01-03 16:10:53 EST
Bog, did you fix this problem already ?
Comment 16 Aaron Digulla CLA 2012-01-03 16:56:45 EST
Not sure if this is related: Since SWT 3.4, you need to call

 getMenuBarManager ().updateAll (true);

after creating the menus to make accelerators work in SWT.
Comment 17 Bogdan Gheorghe CLA 2012-01-04 16:27:30 EST
Looked into this today. We weren't able to get the crash on our Ubuntu system - we tried opening + closing editors, switching perspectives, closing the workbench, reparenting windows - without any luck.

While adding a null check for shell in MenuItem seems to be safe enough, we'd really prefer to get a reproducible case to make sure that we're not just kicking the same problem a bit further down the road.

Does anyone here (or in the duplicate bugs) have any consistently reproducible steps to get this crash?

To get this into the 3.7.2 build, the fix needs to be in by next Tuesday, Jan 10, so if we can get a repro case soon, it would help to ensure that the fix gets in. Thanks!
Comment 18 Aaron Digulla CLA 2012-01-05 16:30:06 EST
(In reply to comment #17)
> Looked into this today. We weren't able to get the crash on our Ubuntu system -
> we tried opening + closing editors, switching perspectives, closing the
> workbench, reparenting windows - without any luck.

I see this also every now and then but I haven't found a way to reproduce it, either.

The problem is that it can lock the UI. That means you have to kill Eclipse after it happens -> your workspace can get corrupted plus you lose all unsaved work.

So as a workaround, I suggest that you add a check and log important information into the error log. This should go into 3.7.2 if possible. That way, we have a chance to track it down for 3.8/4.0.

The stack trace seems to be consistent; maybe you can throw a special exception which you can handle higher up to add more information to the error log which might help to figure out why the reference in question is null.
Comment 19 Bogdan Gheorghe CLA 2012-01-10 15:25:39 EST
Added check for null shell.
Comment 20 Bogdan Gheorghe CLA 2012-01-10 16:09:45 EST
Fixed in R3_7_maintenance and master > 20120110
Comment 21 Luca Di Stefano CLA 2012-03-22 09:38:39 EDT
there is a patch against the actual swt version in indigo?
I have an ubuntu 11.10 64 bit and with jdk 1.7 it happens often
Comment 22 Remy Suen CLA 2012-03-23 07:58:36 EDT
(In reply to comment #21)
> there is a patch against the actual swt version in indigo?

The fix should be in Indigo SR2. Are you using 3.7.2/Indigo SR2?
Comment 23 Luca Di Stefano CLA 2012-03-23 09:57:10 EDT
I use
Version: Indigo Service Release 2
Build id: 20120216-1857
on Ubuntu desktop 11.10 classic gnome shell, jdk 1.7

Maybe is a different bug.
Sympthom is that a popup menu fails to appear and the whole system ui is freezed.
I need to switch to a console, login and kill eclipse. Then I can switch back to X and the desktop is working again with all already open apps.

On ubuntu launchpad I found a link to this ticket...

Anyway the following are the last exceptions before freeze:

!ENTRY org.python.pydev.core 1 1 2012-03-22 08:59:08.149
!MESSAGE Did not expect adapter request: interface org.eclipse.ui.IActionFilter
!STACK 0
java.lang.RuntimeException: Did not expect adapter request: interface org.eclipse.ui.IActionFilter
        at org.python.pydev.core.log.Log.logInfo(Log.java:112)
        at org.python.pydev.navigator.elements.WrappedResource.getAdapterFromActualObject(WrappedResource.java:159)
        at org.python.pydev.navigator.elements.WrappedResource.getAdapter(WrappedResource.java:105)
        at org.eclipse.ui.internal.util.Util.getAdapter(Util.java:109)
        at org.eclipse.ui.internal.ActionExpression$ObjectStateExpression.getActionFilter(ActionExpression.java:471)
        at org.eclipse.ui.internal.ActionExpression$ObjectStateExpression.preciselyMatches(ActionExpression.java:524)
        at org.eclipse.ui.internal.ActionExpression$ObjectStateExpression.isEnabledFor(ActionExpression.java:499)
        at org.eclipse.ui.internal.ActionExpression$SingleExpression.isEnabledFor(ActionExpression.java:743)
        at org.eclipse.ui.internal.ActionExpression.isEnabledFor(ActionExpression.java:1053)
        at org.eclipse.ui.internal.decorators.DecoratorDefinition.isEnabledFor(DecoratorDefinition.java:282)
        at org.eclipse.ui.internal.decorators.DecoratorManager.getDecoratorsFor(DecoratorManager.java:382)
        at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecoratorsFor(LightweightDecoratorManager.java:315)
        at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:340)
        at org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:370)
        at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:330)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

!ENTRY org.eclipse.jface 2 0 2012-03-22 10:34:56.183
!MESSAGE Keybinding conflicts occurred.  They may interfere with normal accelerator operation.
!SUBENTRY 1 org.eclipse.jface 2 0 2012-03-22 10:34:56.183
!MESSAGE A conflict occurred for ALT+CTRL+C:
Binding(ALT+CTRL+C,
        ParameterizedCommand(Command(org.eclipse.linuxtools.changelog.core.actions.KeyActionCommand,Insert ChangeLog entry,
                Insert a ChangeLog entry,
                Category(org.eclipse.linuxtools.changelog,Changelog,Changelog key bindings,true),
                ActionDelegateHandlerProxy(null,org.eclipse.linuxtools.changelog.core.actions.InsertChangeLogKeyHandler),
                ,,true),null),
        org.eclipse.ui.defaultAcceleratorConfiguration,
        org.eclipse.ui.textEditorScope,,,system)
Binding(ALT+CTRL+C,
        ParameterizedCommand(Command(org.eclipse.linuxtools.changelog.core.actions.KeyActionCommand,Insert ChangeLog entry,
                Insert a ChangeLog entry,
                Category(org.eclipse.linuxtools.changelog,Changelog,Changelog key bindings,true),
                ActionDelegateHandlerProxy(null,org.eclipse.linuxtools.changelog.core.actions.InsertChangeLogKeyHandler),
                ,,true),null),
        org.eclipse.ui.defaultAcceleratorConfiguration,
        org.eclipse.compare.compareEditorScope,,,system)
Binding(ALT+CTRL+C,
        ParameterizedCommand(Command(org.eclipse.team.svn.ui.command.CommitCommand,Commit...,
                ,
                Category(org.eclipse.team.svn.ui.command.category,SVN,null,true),
                ,
                ,,true),null),
        org.eclipse.ui.defaultAcceleratorConfiguration,
        org.eclipse.ui.contexts.window,,,system)

!ENTRY org.eclipse.osgi 2 1 2012-03-22 10:43:03.687
!MESSAGE NLS unused message: CodeAssistPreferencePage_showStub in: org.eclipse.php.internal.ui.PHPUIMessages