Community
Participate
Working Groups
"Bug 123099" does not believe that addresses the same issue . Caused by: java.lang.NegativeArraySizeException at org.eclipse.swt.widgets.Menu.getItems(Menu.java:859) at org.eclipse.swt.widgets.Menu.releaseChildren(Menu.java:1134) at org.eclipse.swt.widgets.Widget.release(Widget.java:807) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:441) at org.eclipse.swt.widgets.Control.releaseWidget(Control.java:2243) at org.eclipse.swt.widgets.Composite.releaseWidget(Composite.java:763) at org.eclipse.swt.widgets.Table.releaseWidget(Table.java:2871) at org.eclipse.swt.widgets.Widget.release(Widget.java:816) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:756) at org.eclipse.swt.widgets.Widget.release(Widget.java:807) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:756) at org.eclipse.swt.widgets.Widget.release(Widget.java:807) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:756) at org.eclipse.swt.widgets.Widget.release(Widget.java:807) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:756) at org.eclipse.swt.widgets.Widget.release(Widget.java:807) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:756) at org.eclipse.swt.widgets.Widget.release(Widget.java:807) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:441) ... 15 more
Does this occur on 3.6? How can this exception be reproduced?
(In reply to comment #1) > Does this occur on 3.6? How can this exception be reproduced? No, this error, "swt3.5.1.v3555a" occurred. I'm troubled that we have no way to reproduce it. However, the error has occurred, it is true that I posted.
I have the same bug. This causes that no menu is accessible and it's impossible to close eclipse. The only way is to kill the process. Stack trace : !ENTRY org.eclipse.ui 4 0 2011-01-25 21:32:53.790 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTError: Cannot get the enabled state at org.eclipse.swt.SWT.error(SWT.java:4109) at org.eclipse.swt.SWT.error(SWT.java:3998) at org.eclipse.swt.SWT.error(SWT.java:3969) at org.eclipse.swt.widgets.Widget.error(Widget.java:468) at org.eclipse.swt.widgets.MenuItem.getEnabled(MenuItem.java:418) at org.eclipse.swt.widgets.MenuItem.isEnabled(MenuItem.java:504) at org.eclipse.swt.widgets.Control.WM_COMMAND(Control.java:4289) at org.eclipse.swt.widgets.Shell.WM_COMMAND(Shell.java:2160) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4163) !ENTRY org.eclipse.ui 4 0 2011-01-25 21:32:53.796 !MESSAGE Error occurred during status handling !STACK 0 org.eclipse.swt.SWTError: Cannot set text at org.eclipse.swt.SWT.error(SWT.java:4109) at org.eclipse.swt.SWT.error(SWT.java:3998) at org.eclipse.swt.SWT.error(SWT.java:3969) at org.eclipse.swt.widgets.Widget.error(Widget.java:468) at org.eclipse.swt.widgets.MenuItem.setText(MenuItem.java:1083) at org.eclipse.jface.action.MenuManager.update(MenuManager.java:909) 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:3278) at org.eclipse.ui.internal.Workbench.access$0(Workbench.java:3238) !ENTRY org.eclipse.ui 4 0 2011-01-25 21:35:36.674 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTError: Cannot set text at org.eclipse.swt.SWT.error(SWT.java:4109) at org.eclipse.swt.SWT.error(SWT.java:3998) at org.eclipse.swt.SWT.error(SWT.java:3969) at org.eclipse.swt.widgets.Widget.error(Widget.java:468) at org.eclipse.swt.widgets.MenuItem.setText(MenuItem.java:1083) !ENTRY org.eclipse.ui 4 0 2011-01-25 21:35:39.696 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.StackOverflowError at org.eclipse.jface.action.ContributionManager.getItems(ContributionManager.java:208) at org.eclipse.jface.action.MenuManager.update(MenuManager.java:873) 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:3278) at org.eclipse.ui.internal.Workbench.access$0(Workbench.java:3238)
One of my users experienced this error today on 3.6, but I could not yet find a way reproduce it. The affected menu is a right-click context menu ("popup") that consists of a bunch of <objectContribution> items and one sub-group. The sub-group was show correctly, but the main elements had disappeared. There's the "NegativeArraySizeException" in the log, immediately followed by "Widget disposed too early" (WorkbenchpartReference.java:172). Here's the log entries: !ENTRY org.eclipse.ui 4 0 2011-03-07 15:54:53.740 !MESSAGE Es wurde eine unerwartete Ausnahmebedingung ausgelöst. !STACK 0 java.lang.NegativeArraySizeException at org.eclipse.swt.widgets.Menu.getItems(Menu.java:861) at org.eclipse.swt.widgets.Menu.releaseChildren(Menu.java:1136) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.MenuItem.releaseChildren(MenuItem.java:509) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Menu.releaseChildren(Menu.java:1143) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:446) at org.eclipse.swt.widgets.Control.releaseWidget(Control.java:2278) at org.eclipse.swt.widgets.Composite.releaseWidget(Composite.java:879) at org.eclipse.swt.widgets.Widget.release(Widget.java:820) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:167) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:446) at org.eclipse.ui.internal.PartPane.dispose(PartPane.java:180) at org.eclipse.ui.internal.ViewPane.dispose(ViewPane.java:193) at org.eclipse.ui.internal.WorkbenchPartReference.dispose(WorkbenchPartReference.java:681) at org.eclipse.ui.internal.WorkbenchPage.disposePart(WorkbenchPage.java:1721) at org.eclipse.ui.internal.WorkbenchPage.partRemoved(WorkbenchPage.java:1713) at org.eclipse.ui.internal.ViewFactory.releaseView(ViewFactory.java:257) at org.eclipse.ui.internal.Perspective.dispose(Perspective.java:292) at org.eclipse.ui.internal.WorkbenchPage.dispose(WorkbenchPage.java:1792) at org.eclipse.ui.internal.WorkbenchWindow.closeAllPages(WorkbenchWindow.java:861) at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1696) at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:734) at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:710) at org.eclipse.ui.internal.WorkbenchWindow$5.run(WorkbenchWindow.java:826) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:824) at org.eclipse.jface.window.WindowManager.close(WindowManager.java:109) at org.eclipse.ui.internal.Workbench$18.run(Workbench.java:1106) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1103) at org.eclipse.ui.internal.Workbench.access$15(Workbench.java:1032) at org.eclipse.ui.internal.Workbench$25.run(Workbench.java:1276) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.Workbench.close(Workbench.java:1274) at org.eclipse.ui.internal.Workbench.close(Workbench.java:1246) at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:731) at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:710) at org.eclipse.ui.internal.WorkbenchWindow$5.run(WorkbenchWindow.java:826) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:824) 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:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Decorations.closeWidget(Decorations.java:308) at org.eclipse.swt.widgets.Decorations.WM_CLOSE(Decorations.java:1665) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4162) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1598) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2038) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454) at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:497) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4251) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1598) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2038) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454) at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:497) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4251) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1598) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2038) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655) 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) [...] !ENTRY org.eclipse.ui.workbench 4 0 2011-03-07 15:54:53.755 !MESSAGE Widget disposed too early! !STACK 0 java.lang.RuntimeException: Widget disposed too early! at org.eclipse.ui.internal.WorkbenchPartReference$1.widgetDisposed(WorkbenchPartReference.java:172) 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:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1058) at org.eclipse.swt.widgets.Widget.release(Widget.java:808) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:167) at org.eclipse.swt.widgets.Decorations.releaseChildren(Decorations.java:773) at org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:1267) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:446) at org.eclipse.swt.widgets.Decorations.dispose(Decorations.java:447) at org.eclipse.swt.widgets.Shell.dispose(Shell.java:714) at org.eclipse.jface.window.Window.close(Window.java:335) at org.eclipse.jface.window.ApplicationWindow.close(ApplicationWindow.java:307) at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1735) at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:734) at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:710) at org.eclipse.ui.internal.WorkbenchWindow$5.run(WorkbenchWindow.java:826) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:824) at org.eclipse.jface.window.WindowManager.close(WindowManager.java:109) at org.eclipse.ui.internal.Workbench$18.run(Workbench.java:1106) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1103) at org.eclipse.ui.internal.Workbench.access$15(Workbench.java:1032) at org.eclipse.ui.internal.Workbench$25.run(Workbench.java:1276) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.Workbench.close(Workbench.java:1274) at org.eclipse.ui.internal.Workbench.close(Workbench.java:1246) at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:731) at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:710) at org.eclipse.ui.internal.WorkbenchWindow$5.run(WorkbenchWindow.java:826) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:824) 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:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Decorations.closeWidget(Decorations.java:308) at org.eclipse.swt.widgets.Decorations.WM_CLOSE(Decorations.java:1665) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4162) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1598) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2038) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454) at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:497) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4251) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1598) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2038) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454) at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:497) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4251) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1598) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2038) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655) 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)
Also got this several times on Ubuntu 11.04 / x64 / Eclipse 3.6.2: (is it an issue with SWT under GTK+ maybe? never saw this before) !ENTRY org.eclipse.ui 4 0 2011-05-20 10:40:10.276 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.NegativeArraySizeException at org.eclipse.swt.widgets.Menu.getItems(Menu.java:474) at org.eclipse.jface.action.MenuManager.getMenuItems(MenuManager.java:689) at org.eclipse.jface.action.MenuManager.update(MenuManager.java:778) at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:470) at org.eclipse.jface.action.MenuManager.access$1(MenuManager.java:465) at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:491) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:241) 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.Menu._setVisible(Menu.java:199) at org.eclipse.swt.widgets.Display.runPopups(Display.java:3581) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3158) 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)
(In reply to comment #6) > Also got this several times on Ubuntu 11.04 / x64 / Eclipse 3.6.2: > (is it an issue with SWT under GTK+ maybe? never saw this before) I have experienced the issue as well on Ubuntu 11.04 / x64 / Eclipse 3.6.2, 3.7.0, and 3.7.1 M20110810-0800. I do agree that this is likely an issue with SWT under GTK+. In my attempts to diagnose the issue, I was able to trace the problem down to getItemCount() in org.eclipse.swt.widgets.Menu. When the right click menu is working properly, OS.gtk_container_get_children (handle) returns the correct number of children, but after the bug has occurred, this call returns 0 (which causes _setVisible to immediately sendEvent(SWT.Hide), which results in the context menu not being shown) and a number of exceptions occur at shutdown when the widgets are disposed as well. In my particular case, the issue occurs most frequently when the Outline view is open, the current document has nothing for Outline view to show (it's an XML document that is not in the workspace so Outline view shows "An outline is not available."), and the action selected in the context menu modifies the currently-visible document. For the record, my GTK+ version is 2.2.4.4-0ubuntu2. After the context menu issue occurs, the shutdown typically gets errors: !ENTRY org.eclipse.ui.workbench 4 0 2011-09-16 18:14:44.113 !MESSAGE Widget disposed too early for part org.eclipse.ui.views.ContentOutline !STACK 0 java.lang.RuntimeException: Widget disposed too early for part org.eclipse.ui.views.ContentOutline at org.eclipse.ui.internal.WorkbenchPartReference$1.widgetDisposed(WorkbenchPartReference.java:171) 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:3488) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1294) at org.eclipse.swt.widgets.Widget.release(Widget.java:1083) at org.eclipse.swt.widgets.Control.release(Control.java:3488) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1294) at org.eclipse.swt.widgets.Widget.release(Widget.java:1083) at org.eclipse.swt.widgets.Control.release(Control.java:3488) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1294) at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:208) at org.eclipse.swt.widgets.Decorations.releaseChildren(Decorations.java:469) at org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:2370) at org.eclipse.swt.widgets.Widget.release(Widget.java:1083) at org.eclipse.swt.widgets.Control.release(Control.java:3488) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:462) at org.eclipse.swt.widgets.Shell.dispose(Shell.java:2306) at org.eclipse.jface.window.Window.close(Window.java:335) at org.eclipse.jface.window.ApplicationWindow.close(ApplicationWindow.java:307) at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1761) at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:730) 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.WindowManager.close(WindowManager.java:109) at org.eclipse.ui.internal.Workbench$18.run(Workbench.java:1109) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 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.handlers.QuitHandler.execute(QuitHandler.java:41) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:157) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) 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:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) 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) !ENTRY org.eclipse.ui.workbench 4 2 2011-09-16 18:14:44.168 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench". !STACK 0 java.lang.NullPointerException at org.eclipse.swt.widgets.MenuItem.getAccelGroup(MenuItem.java:316) at org.eclipse.swt.widgets.MenuItem.releaseWidget(MenuItem.java:511) at org.eclipse.swt.widgets.Widget.release(Widget.java:1089) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:462) at org.eclipse.jface.action.ActionContributionItem.dispose(ActionContributionItem.java:1191) at org.eclipse.jface.action.MenuManager.dispose(MenuManager.java:237) at org.eclipse.ui.internal.PartSite.dispose(PartSite.java:203) at org.eclipse.ui.internal.ViewReference.doDisposePart(ViewReference.java:130) at org.eclipse.ui.internal.WorkbenchPartReference.dispose(WorkbenchPartReference.java:684) at org.eclipse.ui.internal.WorkbenchPage.disposePart(WorkbenchPage.java:1797) at org.eclipse.ui.internal.WorkbenchPage.partRemoved(WorkbenchPage.java:1789) at org.eclipse.ui.internal.ViewFactory.releaseView(ViewFactory.java:257) at org.eclipse.ui.internal.Perspective.disposeViewRefs(Perspective.java:321) at org.eclipse.ui.internal.Perspective.dispose(Perspective.java:280) at org.eclipse.ui.internal.WorkbenchPage.dispose(WorkbenchPage.java:1868) at org.eclipse.ui.internal.WorkbenchWindow.closeAllPages(WorkbenchWindow.java:887) at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1722) at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:730) 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.WindowManager.close(WindowManager.java:109) at org.eclipse.ui.internal.Workbench$18.run(Workbench.java:1109) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 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.handlers.QuitHandler.execute(QuitHandler.java:41) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:157) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) 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:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) 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)
As an addendum, I have confirmed this issue in 3.7.1 and 3.8M3 on Ubuntu x86_64. The proximal cause for the exception is the following code in getItems: public MenuItem [] getItems () { checkWidget(); long /*int*/ list = OS.gtk_container_get_children (handle); if (list == 0) return new MenuItem [0]; int count = OS.g_list_length (list); if (imSeparator != 0) count--; if (imItem != 0) count--; MenuItem [] items = new MenuItem [count]; OS.g_list_length (list) returns a count of 1 for the given handle which, after the next two statements, becomes -1 since neither is == to 0, which causes the NegativeArraySizeException. In my debugging session, before the error occurs, the Menu item I am attempting to show has a number of children. After the issue occurs, the Menu item is empty (the toString representation in the variables window shows Menu{}). This also causes getItemCount to return 0 since there are no children, which results in the context menu not showing. I have not been able to determine what happens to the Menu object to cause this issue, but the following steps will frequently, but not consistently, reproduce this: Preconditions: 1) Use a view with a context menu option that modifies the contents of an object 2) Open the outline view 3) Open the document that will be modified Steps: 1) Run the context menu option that modifies the contents of the object 2) Click in the editor window for the modified object 3) Click Yes when asked to reload document 4) Click in Outline view without clicking anywhere else 5) Right click in the view with the aforementioned context menu option Postconditions: (One or more of the following) 1) Context menu is no longer active (although on occasion it can be restored via actions in another view, closing Outline view, performing actions inside the modified document, or closing the editor window of the modified document) 2) When Eclipse closes, there may be a number of log messages such as "Widget disposed too early" and NegativeArraySizeException. 3) On occasion, all pointer actions are consumed so left and right click actions do not work within Eclipse or without and these cannot be recovered unless another TTY is selected and the Eclipse process is terminated. 4) The context menu is replaced with or has additional entries from a different menu (frequently the IME menu...also, the project browser context menu is sometimes replaced with items such as "Link Source") 5) If restart is requested (instead of quit), TerminateAndRelaunch fails with a NullPointerException: !ENTRY org.eclipse.ui 4 4 2011-11-10 15:01:28.191 !MESSAGE Failed to dispose handler for org.eclipse.debug.ui.commands.TerminateAndRelaunch !ENTRY org.eclipse.ui 4 4 2011-11-10 15:01:28.191 !MESSAGE Failed to dispose handler for org.eclipse.debug.ui.commands.TerminateAndRelaunch !STACK 0 java.lang.NullPointerException at org.eclipse.debug.internal.ui.commands.actions.DebugActionHandler.getDelegate(DebugActionHandler.java:48) at org.eclipse.debug.internal.ui.commands.actions.DebugActionHandler.removeHandlerListener(DebugActionHandler.java:112) at org.eclipse.ui.internal.handlers.HandlerProxy.dispose(HandlerProxy.java:271) at org.eclipse.ui.internal.handlers.HandlerPersistence.clearActivations(HandlerPersistence.java:110) at org.eclipse.ui.internal.handlers.HandlerPersistence.dispose(HandlerPersistence.java:125) at org.eclipse.ui.internal.handlers.HandlerService.dispose(HandlerService.java:163) at org.eclipse.ui.internal.services.ServiceLocator.dispose(ServiceLocator.java:142) at org.eclipse.ui.internal.Workbench.shutdown(Workbench.java:3057) at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1123) at org.eclipse.ui.internal.Workbench.access$15(Workbench.java:1040) at org.eclipse.ui.internal.Workbench$25.run(Workbench.java:1284) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.Workbench.close(Workbench.java:1282) at org.eclipse.ui.internal.Workbench.restart(Workbench.java:2292) at org.eclipse.ui.internal.handlers.RestartWorkbenchHandler.execute(RestartWorkbenchHandler.java:31) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829) at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815) at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805) 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:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) 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:352) 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:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579) at org.eclipse.equinox.launcher.Main.run(Main.java:1431) at org.eclipse.equinox.launcher.Main.main(Main.java:1407) (In reply to comment #7)
(In reply to comment #8) > As an addendum, I have confirmed this issue in 3.7.1 and 3.8M3 on Ubuntu > x86_64. The proximal cause for the exception is the following code in > getItems: > public MenuItem [] getItems () { > checkWidget(); > long /*int*/ list = OS.gtk_container_get_children (handle); > if (list == 0) return new MenuItem [0]; > int count = OS.g_list_length (list); > if (imSeparator != 0) count--; > if (imItem != 0) count--; > MenuItem [] items = new MenuItem [count]; Anthony, please note that this bug was report against Windows. This code above is Linux-only. Could you please this discussion to Bug 364313. That said, note that if imSeparator and imItem exist then they should be children of handle. If that is not always true, then it indicates that: - imSeparator and imItem are being created and not added to handle - imSeparator and imItem are being deleted and not set to null - all children are being deleted and imSeparator and imItem not set to null
*** Bug 376150 has been marked as a duplicate of this bug. ***
Another related stacktrace (SWT 3.8M2): org.eclipse.swt.SWTError: Cannot get count [GetLastError=0x0] at org.eclipse.swt.SWT.error(SWT.java:4387) at org.eclipse.swt.widgets.Menu.getItems(Menu.java:873) at org.eclipse.swt.widgets.Menu.releaseChildren(Menu.java:1168) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:446) at org.eclipse.swt.widgets.Control.releaseWidget(Control.java:2430) at org.eclipse.swt.widgets.Composite.releaseWidget(Composite.java:880) at org.eclipse.swt.widgets.Widget.release(Widget.java:820) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:167) at org.eclipse.swt.widgets.Decorations.releaseChildren(Decorations.java:790) at org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:1290) at org.eclipse.swt.widgets.Widget.release(Widget.java:811) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:446) at org.eclipse.swt.widgets.Decorations.dispose(Decorations.java:448) at org.eclipse.swt.widgets.Shell.dispose(Shell.java:715) The application has been running for more than 5 days. java.runtime.version : "1.7.0_02-b13" os.arch : "x86" os.name : "Windows 7" os.version : "6.1"
*** Bug 333628 has been marked as a duplicate of this bug. ***
We've got a report with following exception using SWT 4.4.0: org.eclipse.swt.SWTError: Cannot get count [GetLastError=0x0] at org.eclipse.swt.SWT.error(SWT.java:4423) at org.eclipse.swt.widgets.Menu.getItems(Menu.java:873) at org.eclipse.swt.widgets.Menu.releaseChildren(Menu.java:1168) at org.eclipse.swt.widgets.Widget.release(Widget.java:815) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:450) at smartgit.RQ.handleEvent(SourceFile:1443) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1081) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.release(Widget.java:812) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:875) at org.eclipse.swt.widgets.Widget.release(Widget.java:815) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:875) at org.eclipse.swt.widgets.Widget.release(Widget.java:815) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:875) at org.eclipse.swt.widgets.Widget.release(Widget.java:815) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:875) at org.eclipse.swt.widgets.Widget.release(Widget.java:815) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:875) at org.eclipse.swt.widgets.Widget.release(Widget.java:815) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:875) at org.eclipse.swt.widgets.Widget.release(Widget.java:815) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:875) at org.eclipse.swt.widgets.Widget.release(Widget.java:815) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:875) at org.eclipse.swt.widgets.Widget.release(Widget.java:815) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:875) at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:166) at org.eclipse.swt.widgets.Decorations.releaseChildren(Decorations.java:790) at org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:1290) at org.eclipse.swt.widgets.Widget.release(Widget.java:815) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:450) at org.eclipse.swt.widgets.Decorations.dispose(Decorations.java:448) at org.eclipse.swt.widgets.Shell.dispose(Shell.java:715) a short time later, following exception is logged: org.eclipse.swt.SWTError: Cannot get count [GetLastError=0x579] at org.eclipse.swt.SWT.error(SWT.java:4423) at org.eclipse.swt.widgets.Menu.getItems(Menu.java:873) at org.eclipse.swt.widgets.Menu.releaseChildren(Menu.java:1168) at org.eclipse.swt.widgets.Widget.release(Widget.java:815) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:450) at org.eclipse.swt.widgets.Decorations.releaseChildren(Decorations.java:795) at org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:1290) at org.eclipse.swt.widgets.Widget.release(Widget.java:815) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:450) at org.eclipse.swt.widgets.Decorations.dispose(Decorations.java:448) at org.eclipse.swt.widgets.Shell.dispose(Shell.java:715) at org.eclipse.swt.widgets.Decorations.closeWidget(Decorations.java:310) at org.eclipse.swt.widgets.Decorations.WM_CLOSE(Decorations.java:1697) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4613) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1627) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2075) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4977) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544) at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:498) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1627) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2075) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4977) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544) at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:498) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4706) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1627) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2075) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4977) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2549) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)
Sorry, it was for SWT 4.3.1.
For Windows Desktop: NegativeArraySizeException issue is already fixed in bug 376150, via below patch: http://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=31cb89b02b5dd4f6edf6e9fd65ce9f2e59fabcb6 For Ubuntu: There is bug 364313 for NegativeArraySizeException SWT throws "Cannot get count" error only when underlying Windows API call fails and returns a negative item count value, refer: http://msdn.microsoft.com/en-us/library/windows/desktop/ms647978%28v=vs.85%29.aspx With the current investigation this issue is in Windows API and is a "NOT_ECLIPSE" bug.
Marking as "NOT_ECLIPSE". Please, reopen if you have a valid test case to reproduce this issue.
Are you sure that the handle is really valid, e.g. checked after creating?