Eclipse Helios - "java.lang.RuntimeException: Widget disposed too early!"
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.mai开发者_Go百科n(Main.java:1383)
Any idea how to solve it?
Thanks
Avishay
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
For me, increasing --launcher.XXMaxPermSize
256m
to 512m
in eclipse.ini
worked.
This issue came once Eclipse loaded with many plugins and features due to which Eclipse needed extra space while loading these new plugins/features during startup.
All the bugs reporting this kind of message (like bug 260772 or bug 239681) mention XulRunner: you wouldn't have installed it recently?
Eclipse/SWT 3.4 supports any mozilla/seamonkey/xulrunner/firefox-iff-dynamically-linked >= mozilla 1.4.
Starting with FireFox3, a private xulrunner is shipped with FireFox for its use, however this is not a full install that the Browser can be pointed at independent of the FireFox that it came with.
But if the FireFox is dynamically linked, then the Browser can use it (the FireFox), and the fact that a private xulrunner is being used by the FireFox to do its work is just an implementation detail that the Browser doesn't know/care about.If you have xulrunner 1.9~b5+nobinonly-0ubuntu3 installed - then Eclipse 3.4 doesn't work - and it doesn't seem to matter what versions of FireFox you install or uninstall
The other cause is related to some workspace corruption, which might explain why the OP balderman comments:
I found a way to start eclipse by commenting out the line: RECENT_WORKSPACES=bla bla
in the file org.eclipse.ui.ide.prefs
: as the question "How to delete obsolete workspace in RAD?", that don't actually delete a workspace, but allows to skip one which could have some kind of corruption issue.
Do you get:
org.eclipse.swt.SWTError: No more handles
Every time you start? This means Eclipse is running out of operating system resources, do you have many other applications open? Try shutting down some other applications you have running.
If you DON'T have many other applications running you may want to consider looking at sleak, the eclipse plug-in that monitors handle usage of eclipse and eclipse RCPs.
Are you running plain Eclipse, or have you installed many plug-ins? I'd be very surprised if vanilla Eclipse ran out of handles...it's more likely to be caused by a plug-in (in my experience anyway).
- backup "..\.metadata.plugins\org.eclipse.core.resources" forler
- empty "..\.metadata.plugins\org.eclipse.core.resources\.safetable\org.eclipse.core.resources" file
- run Flex. Your project list will be empty
- close Flex
- restore "..\.metadata.plugins\org.eclipse.core.resources" folder(overwrite all)
- run Flex.
精彩评论