Eclipse Helios - " java.lang.RuntimeException:Widget过早放置!"

时间:2011-03-24 17:40:41

标签: java eclipse helios runtimeexception

您好 我在Win XP上运行Eclipse Helios 当我今天开始时,我收到一条消息,告诉Eclipse无法启动。

以下是生成的日志文件的内容:

!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)

知道怎么解决吗?

由于

Avishay

5 个答案:

答案 0 :(得分:2)

XUL Runner运行时环境版本高于1.9.0.x时会出现此问题,例如版本1.9.1。

您可以通过运行以下命令来确定已配置的XUL Runner运行时环境版本:

xulrunner -v

编辑eclipse.ini文件。 找到-vmargs行并添加一个新行以使用以下语法指定XUL Runner运行时环境的版本:

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

答案 1 :(得分:1)

对我来说,增加--launcher.XXMaxPermSize 256m中的512m eclipse.ini工作了{{1}}。 一旦Eclipse加载了许多插件和功能,Eclipse就会在启动时加载这些新的插件/功能时需要额外的空间。

答案 2 :(得分:0)

报告此类邮件的所有错误(例如bug 260772bug 239681)都提到 XulRunner :您最近没有安装它?

  

Eclipse / SWT 3.4支持任何   mozilla / seamonkey / xulrunner / firefox-iff-dynamic-linked> = mozilla 1.4。

     

从FireFox3开始,FireFox附带了一个私有的xulrunner供其使用,但这不是一个完整的安装,浏览器可以指向独立于它附带的FireFox。   但是如果FireFox是动态链接的,那么浏览器可以使用它(FireFox),而FireFox正在使用私有xulrunner来完成它的工作只是一个   浏览器不知道/不关心的实现细节。

     

如果您安装了xulrunner 1.9~b5 + nobinonly-0ubuntu3,那么Eclipse 3.4不起作用 - 您安装或卸载的FireFox版本似乎并不重要


另一个原因与某些工作空间损坏有关,这可能解释了为什么OP balderman注释:

我找到了一种方法来启动eclipse,方法是在文件RECENT_WORKSPACES=bla bla中注释掉org.eclipse.ui.ide.prefs行:作为问题“How to delete obsolete workspace in RAD?”,实际上并没有删除工作区,但允许跳过可能存在某种腐败问题的那个。

答案 3 :(得分:0)

你得到:

org.eclipse.swt.SWTError: No more handles

每次你开始? 这意味着Eclipse的操作系统资源不足,您是否打开了许多其他应用程序?尝试关闭已运行的其他一些应用程序。

如果您没有运行许多其他应用程序,您可能需要考虑使用sleak,eclipse插件可以监视eclipse和eclipse RCP的使用情况。

您是在运行纯Eclipse,还是安装了许多插件?如果vanilla Eclipse没有手柄,我会感到很惊讶......它更可能是由插件引起的(根据我的经验)。

答案 4 :(得分:-3)

  1. backup“.. \。metadata.plugins \ org.eclipse.core.resources”forler
  2. empty“.. \。metadata.plugins \ org.eclipse.core.resources \ .safetable \ org.eclipse.core.resources”file
  3. 运行Flex。您的项目列表将为空
  4. 关闭Flex
  5. 恢复“.. \。metadata.plugins \ org.eclipse.core.resources”文件夹(覆盖全部)
  6. 运行Flex。