Eclipse Helios - "java.lang.RuntimeException: Widget disposed too early!"

balderman picture balderman · Mar 24, 2011 · Viewed 8.2k times · Source

Hi I am running Eclipse Helios on Win XP.
When I start it today, I get a message telling that Eclipse can not be started.

Here is the content of the log file that was generated:

!SESSION 2011-03-24 19:28:51.296 -----------------------------------------------
eclipse.buildId=M20100909-0800
java.version=1.6.0_22
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=iw_IL
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product


!ENTRY org.eclipse.core.resources 2 10035 2011-03-24 19:28:52.609
!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
!ENTRY org.eclipse.ui.workbench 4 0 2011-03-24 19:29:02.281
!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.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.ui.internal.Workbench$65.runWithException(Workbench.java:3639)
    at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
    at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
    at org.eclipse.ui.internal.Workbench$31.runWithException(Workbench.java:1567)
    at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548)
    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:619)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1383)


!ENTRY org.eclipse.osgi 4 0 2011-03-24 19:29:02.812
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTError: No more handles
    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.internal.ImageList.copyWithAlpha(ImageList.java:175)
    at org.eclipse.swt.internal.ImageList.set(ImageList.java:405)
    at org.eclipse.swt.internal.ImageList.add(ImageList.java:66)
    at org.eclipse.swt.widgets.ToolItem.updateImages(ToolItem.java:935)
    at org.eclipse.swt.widgets.ToolItem.setImage(ToolItem.java:708)
    at org.eclipse.ui.internal.PerspectiveBarContributionItem.fill(PerspectiveBarContributionItem.java:87)
    at org.eclipse.jface.action.ToolBarManager.update(ToolBarManager.java:353)
    at org.eclipse.ui.internal.PerspectiveBarManager.addItem(PerspectiveBarManager.java:189)
    at org.eclipse.ui.internal.PerspectiveSwitcher.addPerspectiveShortcut(PerspectiveSwitcher.java:262)
    at org.eclipse.ui.internal.PerspectiveSwitcher.access$1(PerspectiveSwitcher.java:254)
    at org.eclipse.ui.internal.PerspectiveSwitcher$ChangeListener.perspectiveOpened(PerspectiveSwitcher.java:163)
    at org.eclipse.ui.internal.PerspectiveListenerList$7.run(PerspectiveListenerList.java:192)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.runtime.Platform.run(Platform.java:888)
    at org.eclipse.ui.internal.PerspectiveListenerList.fireEvent(PerspectiveListenerList.java:58)
    at org.eclipse.ui.internal.PerspectiveListenerList.firePerspectiveOpened(PerspectiveListenerList.java:190)
    at org.eclipse.ui.internal.WorkbenchWindow.firePerspectiveOpened(WorkbenchWindow.java:1499)
    at org.eclipse.ui.internal.WorkbenchPage$17.runWithException(WorkbenchPage.java:3222)
    at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
    at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
    at org.eclipse.ui.internal.Workbench$31.runWithException(Workbench.java:1567)
    at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548)
    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:619)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1383)

Any idea how to solve it?

Thanks

Avishay

Answer

Amaury Quintero picture Amaury Quintero · Sep 12, 2012

This problem occurs with XUL Runner runtime environment versions later than 1.9.0.x, for example, version 1.9.1.

You can determine the configured version of XUL Runner runtime environment by running the following command:

xulrunner -v

Edit the eclipse.ini file. Locate the -vmargs line and add a new line to specify the version of the XUL Runner runtime environment using this syntax:

-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner-1.9.x.x