2011-03-24 65 views
2

嗨 我在Win XP上運行Eclipse Helios。
今天開始時,我收到一條消息,告知Eclipse無法啓動。Eclipse Helios - 「java.lang.RuntimeException:Widget處理得太早!」

這裏是生成的日誌文件的內容:

!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

回答

0

所有的bug報告這類消息時(如bug 260772bug 239681)提XulRunner:你不會最近安裝了嗎?

的Eclipse/SWT 3.4支持任何 Mozilla瀏覽器/設備SeaMonkey/xulrunner的/火狐-IFF-動態鏈接> = 1.4的Mozilla。

從FireFox3開始,一個私有的xulrunner隨FireFox一起發貨使用,但這不是一個完整的安裝,瀏覽器可以指向獨立於它的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?」,日在實際上並沒有刪除一個工作區,但允許跳過可能存在某種腐敗問題的工作區。

+0

不 - 與XulRunner無關。我找到了一條通過註釋掉這條線來啓動eclipse的方法:RECENT_WORKSPACES =文件中的bla bla org.eclipse.ui.ide – balderman 2011-03-24 18:35:40

+0

@balderman:太棒了!我的答案中包含了您的解決方案。 – VonC 2011-03-24 19:32:03

0

你明白:

org.eclipse.swt.SWTError: No more handles 

每次啓動?這意味着Eclipse將耗盡操作系統資源,您是否還有許多其他應用程序處於打開狀態?嘗試關閉一些其他正在運行的應用程序。

如果您沒有運行其他許多應用程序,您可能需要考慮查看sleak,監視器的eclipse插件處理eclipse和eclipse RCP的使用情況。

您是在運行純Eclipse還是安裝了許多插件?如果vanilla Eclipse用完了句柄,我會感到非常驚訝......它更可能是由插件引起的(無論如何,我的經驗)。

1

對我來說,增加--launcher.XXMaxPermSize 256m512meclipse.ini工作。 一旦Eclipse加載了許多插件和功能,就會出現此問題,因爲在啓動過程中加載這些新插件/功能時,Eclipse需要額外的空間。

2

XUL Runner運行時環境版本晚於1.9.0.x,例如版本1.9.1,會出現此問題。

您可以通過運行以下命令確定XUL亞軍運行時環境的配置版本:

xulrunner -v 

編輯eclipse.ini文件。 找到-vmargs線,並添加一個新行使用此語法指定XUL亞軍運行時環境的版本:

-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner-1.9.x.x 
-3
  1. 備份」 .. \ metadata.plugins \ org.eclipse.core.resources 「forler
  2. 空」.. \。metadata.plugins \ org.eclipse.core.resources \ .safetable \ org.eclipse.core.resources「文件
  3. 運行Flex。您的項目列表將是空
  4. 密切的Flex
  5. 恢復 「.. \。metadata.plugins \ org.eclipse.core.resources」 文件夾(覆蓋所有)
  6. 運行的Flex。
+1

歡迎來到SO,Gev!你確定這回答了給定的問題嗎? – cfi 2014-01-11 07:54:13

+0

當星形彎曲時,我得到類似的錯誤。我做了我寫的步驟,並解決了問題 – Gev 2014-01-13 12:22:16

+0

爲什麼這個工作? – Sterls 2015-09-08 16:40:48