Eclipse workspace fails to start after crash – quick fix

Here’s a quick HOWTO for resolving Eclipse startup workspace loading problems. If you have a better suggestion then please leave a comment!

There can be a lot of other issues but here is one of the quite common ones – eclipse resources cache or state gets out of sync/corrupted.

This can happen when your IDE crashes OR also without crashing. For non-crashing case it’s more likely a logic/bug problem and whenever possible, try to file a bug at bugs.eclipse.org!

Sometimes, just SOMETIMES, you’ll get exceptions like following when launching Eclipse IDE after crashing it:

Root exception:
org.eclipse.core.internal.resources.ResourceException(null)[567]:
java.io.UTFDataFormatException: malformed input around byte 394
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at org.eclipse.core.internal.resources.WorkspaceTreeReader_1.
readPluginsSavedStates(WorkspaceTreeReader_1.java:111)
at org.eclipse.core.internal.resources.WorkspaceTreeReader_1.
readTree(WorkspaceTreeReader_1.java:159)
at org.eclipse.core.internal.resources.SaveManager.restoreTree(SaveManager.java:916)
at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:647)
at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1319)
at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:1949)
at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:1713)
at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:363)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.
run(BundleContextImpl.java:999)
at java.security.AccessController.doPrivileged(Native Method)

The key here is row “org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:647)”.

This stakctrace means your root .tree file is damaged and thereby unable to restore your opened projects.

The quickest way to fix this or any other resource-related exception is to:

  1. Shut down Eclipse IDE
  2. Remove and backup your workspace/.metadata/.plugins/org.eclipse.core.resources directory
  3. Start Eclipse IDE (with -clean to be super-safe)
  4. Reimport all projects (UPDATE: Just use File->Import->Existing Project into Workspace and browse your workspace/project directory)
  5. Enjoy

Maybe deleting workspace/.metadata/.plugins/org.eclipse.core.resources/.root/*tree would have been good enough for my case but it’s definitely not a workaround for other possible workspace resource state and cache related exceptions.

I’m not sure if this information without any reproducible steps is useful for bugs.eclipse.org. Not filing it this time. Or should I?

UPDATE: If this does not work then Shaneem from comments got it fixed this way:

All these didn’t work for me. I finally checked ./metadata/.log file and found a message like “I don’t like this report action you copied from another proxy service”. So opened the proxy service in text editor and removed it. Bingo! All errors vanished!

  • DJ Houghton

    Unfortunately with most of these types of startup problems, the real problems happen when the workspace is shutting down so the above stack trace isn’t much help. But if you feel you might have some info that can help us track down a problem, please enter a report.

    At one point we started working on a tool which would try and restore broken workspaces. I am not sure of its state, but it is available on the Core team downloads page and the source is in CVS:

    http://www.eclipse.org/eclipse/platform-core/downloads.php

    For the beginners – If you do follow the steps above, when it says to re-import all your projects, that doesn’t mean you have to re-load them all from CVS. You should be able to do “File -> Import -> General -> Existing Projects into Workspace” and then choose your workspace directory.

  • http://ahtik.com Ahti

    Excellent hint, thanks! I’ll take a look at Core Tools.

    Also thanks for the “beginner” hint – true, one could think that “re-import” means new checkout from cvs/svn.

    Simple import existing project projects into Workspace is enough.

    Btw, if your Existing Project import wizard is unable to find your projects (finds just one, for example) then this can be caused by some nested project directory structure.

    Just make sure that you don’t have nested .project files (one at the parent directory for example).

    Workaround to get all your projects imported is to point to the exact subdirectory that contains just your .project. Or temporarily remove .project from the parent directory :)

    For 99% of cases Import existing project wizard works perfectly.

  • http://ahtik.com Ahti

    btw, unfortunately looks like Core Tools is not upgraded to 3.3x. Latest download is for 3.2 release. We’ll see if it still works with 3.4Mx

  • Daniel Bany

    Excellent hint, worked perfectly for me, single import brought everything back perfectly. thanks a lot

  • http://ahtik.com Ahti

    Thanks, glad it helped! :)

  • Jörg Spilker

    Well, eclipse starts again after i removed the org.eclupse.core.resources directory. But importing the projects from the workspace results in a crash again :-(

  • http://ahtik.com Ahti

    All I can say is that try to import one by one and find out the affected project :)

    Or simply remove all the .settings directories from your projects. That can help too.

  • Walter

    My problem was that I tried to open in eclipse a file that is too large and it died. After that point, I was not able to open eclipse. I searched for the file name in the contents of the files in .metadata directory. I found it in the .metadata\.plugins\org.eclipse.ui.workbench\workbench.xml file. I made a zip copy of the .metadata directory as a backup and then edited the workbench.xml file in a text editor. I searched for all entries of the filename and removed the xml tag entries that had that filename.
    I had to delete
    an editor entry in the editors, an item entry in the navigationHistory, and a file entry in mruList.

    Once I saved the file, I was then able to open eclipse with no problems. It would be nice if eclipse would recognize the file is too large to open and not open it, or would only load a certain number of bytes of the file into memory and when I paged up or down would unload the current block of file data from memory and load the new block. It owuld also be nice if it allowed you to not load a file that is causing problems when you start up and simply tell you the file had difficulty loading. The warning message it gives makes on believe that the system would be in an unstable condition and one should not continue to load eclipse.

    • John

      Thanks for posting it – your tip still works!

  • elguma

    Thanks for the tip.

    I’m one of the hardcore users who like sharing workspace instead of just source code through svn. I use sshfs for this, and sometimes forget to close eclipse when suspending the laptop – this time the results was this error :/, but fortunately I was able to run using this tip. Thanks!

  • http://ahtik.com Ahti

    elguma, glad to help :)

    these recaptcha words get worse and worse, surprising that some people still manage to comment here :)

  • Stokes

    It’s 2009, and this article is still helping. Mine failed on a brand new Eclipse install, so I reinstalled it before googling. Ran into the same problem (because the problem was in my workspace, of course) before finding this page.

    Thanks!

  • hawaiiantime

    gosh, you saved me!!!
    thanks a lot!! :)

  • André

    Thanks, saved my day!

    Version: 3.4.2
    Build id: M20090211-1700
    With subclipse and PDT installed..

  • James Calfee

    I have too many projects to be happy with this solution. This is not the first time either. This time it was intermittent when opening projects for a while and finally became start-up fatal.

    I’m using Eclipse 3.2 on ext3. Since this the following did not help, I believe I have ruled out a memory allocation problem in the VM:

    eclipse -vmargs -Xms128m -Xmx1G -XX:PermSize=64M -XX:MaxPermSize=128M

    Eclipse need to manage the workspace in more of a transactional way so this can’t happen. Is there a re-build tool?

  • ned

    I have installed rational application developer 7.5 on Redhat Enterprise linux 5.2 and I have been having problems opening the workbench window.. Here is the error log which has been created in the .log file for the workspace..

    !SESSION 2009-08-29 14:08:04.453 ———————————————–
    eclipse.buildId=unknown
    java.fullversion=J2RE 1.6.0 IBM J9 2.4 Linux x86-32 jvmxi3260-20080816_22093 (JIT enabled, AOT enabled)
    J9VM – 20080816_022093_lHdSMr
    JIT – r9_20080721_1330ifx2
    GC – 20080724_AA
    BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
    Framework arguments: -product com.ibm.rational.rad.product.v75.ide
    Command-line arguments: -os linux -ws gtk -arch x86 -product com.ibm.rational.rad.product.v75.ide

    !ENTRY org.eclipse.ui.workbench 4 0 2009-08-29 14:08:18.717
    !MESSAGE Widget disposed too early!
    !STACK 0
    java.lang.RuntimeException: Widget disposed too early!
    at org.eclipse.ui.internal.WorkbenchPartReference$1.widgetDisposed(Unknown Source)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Composite.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Composite.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Composite.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Canvas.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Decorations.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Shell.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Widget.dispose(Unknown Source)
    at org.eclipse.swt.widgets.Shell.dispose(Unknown Source)
    at org.eclipse.swt.widgets.Display.release(Unknown Source)
    at org.eclipse.swt.graphics.Device.dispose(Unknown Source)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
    at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
    at org.eclipse.equinox.launcher.Main.run(Unknown Source)
    at org.eclipse.equinox.launcher.Main.main(Unknown Source)

    !ENTRY org.eclipse.ui.workbench 4 0 2009-08-29 14:08:18.721
    !MESSAGE Widget disposed too early!
    !STACK 0
    java.lang.RuntimeException: Widget disposed too early!
    at org.eclipse.ui.internal.WorkbenchPartReference$1.widgetDisposed(Unknown Source)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Composite.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Composite.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Composite.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Canvas.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Decorations.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Shell.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Widget.dispose(Unknown Source)
    at org.eclipse.swt.widgets.Shell.dispose(Unknown Source)
    at org.eclipse.swt.widgets.Display.release(Unknown Source)
    at org.eclipse.swt.graphics.Device.dispose(Unknown Source)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
    at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
    at org.eclipse.equinox.launcher.Main.run(Unknown Source)
    at org.eclipse.equinox.launcher.Main.main(Unknown Source)

    !ENTRY org.eclipse.ui.workbench 4 0 2009-08-29 14:08:18.723
    !MESSAGE Widget disposed too early!
    !STACK 0
    java.lang.RuntimeException: Widget disposed too early!
    at org.eclipse.ui.internal.WorkbenchPartReference$1.widgetDisposed(Unknown Source)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Composite.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Composite.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Composite.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Canvas.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Decorations.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Shell.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Widget.dispose(Unknown Source)
    at org.eclipse.swt.widgets.Shell.dispose(Unknown Source)
    at org.eclipse.swt.widgets.Display.release(Unknown Source)
    at org.eclipse.swt.graphics.Device.dispose(Unknown Source)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
    at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
    at org.eclipse.equinox.launcher.Main.run(Unknown Source)
    at org.eclipse.equinox.launcher.Main.main(Unknown Source)

    !ENTRY org.eclipse.ui.workbench 4 0 2009-08-29 14:08:18.725
    !MESSAGE Widget disposed too early!
    !STACK 0
    java.lang.RuntimeException: Widget disposed too early!
    at org.eclipse.ui.internal.WorkbenchPartReference$1.widgetDisposed(Unknown Source)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Composite.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Composite.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Composite.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Canvas.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Decorations.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Shell.releaseChildren(Unknown Source)
    at org.eclipse.swt.widgets.Widget.release(Unknown Source)
    at org.eclipse.swt.widgets.Control.release(Unknown Source)
    at org.eclipse.swt.widgets.Widget.dispose(Unknown Source)
    at org.eclipse.swt.widgets.Shell.dispose(Unknown Source)
    at org.eclipse.swt.widgets.Display.release(Unknown Source)
    at org.eclipse.swt.graphics.Device.dispose(Unknown Source)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
    at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
    at org.eclipse.equinox.launcher.Main.run(Unknown Source)
    at org.eclipse.equinox.launcher.Main.main(Unknown Source)

    !ENTRY org.eclipse.osgi 4 0 2009-08-29 14:08:18.771
    !MESSAGE Application error
    !STACK 1
    org.eclipse.swt.SWTError: XPCOM error -2147467262
    at org.eclipse.swt.browser.Mozilla.error(Unknown Source)
    at org.eclipse.swt.browser.Mozilla.setText(Unknown Source)
    at org.eclipse.swt.browser.Browser.setText(Unknown Source)
    at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.generateContentForPage(Unknown Source)
    at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.dynamicStandbyStateChanged(Unknown Source)
    at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.doStandbyStateChanged(Unknown Source)
    at org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation.standbyStateChanged(Unknown Source)
    at org.eclipse.ui.internal.intro.impl.model.IntroPartPresentation.standbyStateChanged(Unknown Source)
    at org.eclipse.ui.intro.config.CustomizableIntroPart.standbyStateChanged(Unknown Source)
    at org.eclipse.ui.internal.ViewIntroAdapterPart$2.run(Unknown Source)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
    at org.eclipse.ui.internal.ViewIntroAdapterPart.setStandby(Unknown Source)
    at org.eclipse.ui.internal.ViewIntroAdapterPart$1.propertyChanged(Unknown Source)
    at org.eclipse.ui.internal.WorkbenchPartReference.fireInternalPropertyChange(Unknown Source)
    at org.eclipse.ui.internal.WorkbenchPartReference.fireZoomChange(Unknown Source)
    at org.eclipse.ui.internal.PartPane.setZoomed(Unknown Source)
    at org.eclipse.ui.internal.PartStack.setZoomed(Unknown Source)
    at org.eclipse.ui.internal.PartSashContainer.zoomIn(Unknown Source)
    at org.eclipse.ui.internal.PartSashContainer.childRequestZoomIn(Unknown Source)
    at org.eclipse.ui.internal.LayoutPart.requestZoomIn(Unknown Source)
    at org.eclipse.ui.internal.PartStack.setState(Unknown Source)
    at org.eclipse.ui.internal.WorkbenchPage.setState(Unknown Source)
    at org.eclipse.ui.internal.WorkbenchPage.toggleZoom(Unknown Source)
    at org.eclipse.ui.internal.WorkbenchIntroManager.setIntroStandby(Unknown Source)
    at org.eclipse.ui.internal.WorkbenchIntroManager.showIntro(Unknown Source)
    at org.eclipse.ui.application.WorkbenchWindowAdvisor.openIntro(Unknown Source)
    at org.eclipse.ui.internal.ide.application.IDEWorkbenchWindowAdvisor.openIntro(Unknown Source)
    at org.eclipse.ui.internal.WorkbenchWindow.open(Unknown Source)
    at org.eclipse.ui.internal.Workbench$22.runWithException(Unknown Source)
    at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(Unknown Source)
    at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Unknown Source)
    at org.eclipse.ui.internal.Workbench$27.runWithException(Unknown Source)
    at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(Unknown Source)
    at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at org.eclipse.ui.internal.Workbench.runUI(Unknown Source)
    at org.eclipse.ui.internal.Workbench.access$4(Unknown Source)
    at org.eclipse.ui.internal.Workbench$5.run(Unknown Source)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Unknown Source)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Unknown Source)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(Unknown Source)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
    at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
    at org.eclipse.equinox.launcher.Main.run(Unknown Source)
    at org.eclipse.equinox.launcher.Main.main(Unknown Source)

    !ENTRY com.ibm.team.filesystem.ide.ui 4 0 2009-08-29 14:08:20.616
    !MESSAGE
    !STACK 0
    org.osgi.framework.BundleException: Exception in com.ibm.team.filesystem.ui.UiPlugin.stop() of bundle com.ibm.team.filesystem.ide.ui.
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.SystemBundle.suspend(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.Framework.close(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.OSGi.close(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
    at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
    at org.eclipse.equinox.launcher.Main.run(Unknown Source)
    at org.eclipse.equinox.launcher.Main.main(Unknown Source)
    Caused by: org.eclipse.swt.SWTException: Widget is disposed
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.widgets.Widget.error(Unknown Source)
    at org.eclipse.swt.widgets.Widget.getDisplay(Unknown Source)
    at com.ibm.team.filesystem.ui.autocommit.AutoCommitParticipant.getDisplay(Unknown Source)
    at com.ibm.team.filesystem.ui.autocommit.AutoCommitParticipant.removeKeystrokeListener(Unknown Source)
    at com.ibm.team.filesystem.ui.autocommit.AutoCommitParticipant.uninstall(Unknown Source)
    at com.ibm.team.filesystem.rcp.core.internal.changes.util.AutoCommitManager.setParticipant(Unknown Source)
    at com.ibm.team.filesystem.ui.UiPlugin.stop(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Unknown Source)
    … 21 more
    Root exception:
    org.eclipse.swt.SWTException: Widget is disposed
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.widgets.Widget.error(Unknown Source)
    at org.eclipse.swt.widgets.Widget.getDisplay(Unknown Source)
    at com.ibm.team.filesystem.ui.autocommit.AutoCommitParticipant.getDisplay(Unknown Source)
    at com.ibm.team.filesystem.ui.autocommit.AutoCommitParticipant.removeKeystrokeListener(Unknown Source)
    at com.ibm.team.filesystem.ui.autocommit.AutoCommitParticipant.uninstall(Unknown Source)
    at com.ibm.team.filesystem.rcp.core.internal.changes.util.AutoCommitManager.setParticipant(Unknown Source)
    at com.ibm.team.filesystem.ui.UiPlugin.stop(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.SystemBundle.suspend(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.Framework.close(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.OSGi.close(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
    at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
    at org.eclipse.equinox.launcher.Main.run(Unknown Source)
    at org.eclipse.equinox.launcher.Main.main(Unknown Source)

    !ENTRY com.ibm.team.workitem.rcp.ui 4 0 2009-08-29 14:08:20.618
    !MESSAGE
    !STACK 0
    org.osgi.framework.BundleException: Exception in com.ibm.team.workitem.rcp.ui.internal.WorkItemRCPUIPlugin.stop() of bundle com.ibm.team.workitem.rcp.ui.
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.SystemBundle.suspend(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.Framework.close(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.OSGi.close(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
    at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
    at org.eclipse.equinox.launcher.Main.run(Unknown Source)
    at org.eclipse.equinox.launcher.Main.main(Unknown Source)
    Caused by: java.lang.NullPointerException
    at com.ibm.team.workitem.rcp.ui.internal.feed.FeedsMigration.storePrefs(Unknown Source)
    at com.ibm.team.workitem.rcp.ui.internal.feed.FeedsMigration.stop(Unknown Source)
    at com.ibm.team.workitem.rcp.ui.internal.WorkItemRCPUIPlugin.stop(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Unknown Source)
    … 21 more
    Root exception:
    java.lang.NullPointerException
    at com.ibm.team.workitem.rcp.ui.internal.feed.FeedsMigration.storePrefs(Unknown Source)
    at com.ibm.team.workitem.rcp.ui.internal.feed.FeedsMigration.stop(Unknown Source)
    at com.ibm.team.workitem.rcp.ui.internal.WorkItemRCPUIPlugin.stop(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.SystemBundle.suspend(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.Framework.close(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.OSGi.close(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
    at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
    at org.eclipse.equinox.launcher.Main.run(Unknown Source)
    at org.eclipse.equinox.launcher.Main.main(Unknown Source)

  • UweL

    Thanks a lot, it worked. Saved me a great deal of time!

  • Jon

    Saved my bacon, thanks. (Eclipse 3.5.1 64-bit Linux)

  • Lachlan Cotter

    Many thanks for this excellent post. What a lifesaver.

  • constant

    Thanks a lot~

  • Vikas

    Thanks a lot…it worked,

  • Colingaj

    I backed up my .root and .safetable directories then started Eclipse successfully. All my projects were gone. Next, I shut down Eclipse and removed the newly created .root and .safetable directories, replacing them with the old backed up versions. Eclipse started fine and all my projects showed up.

    • ajwang

      Thanks for the tip. It worked out perfectly for me.

    • Tejas Gokhale

      Already in crisis with schedule, my workspace of 11 projects crashed today. If not for your tip, I would be spending days to restore all the projects in a new workspace. Thanks for the help.

  • Ridhopahwanaerwandhani

    Thanks a lot …. your article help me

  • Vikasvijp

    Thanks alot. It helped!

  • http://twitter.com/r15habh rishabh

    Thanks. It helped !!

  • http://www.facebook.com/people/Manuela-Marginean/100001312931166 Manuela Marginean

    Thank you, you saved my day. I have worked with eclipse and RAD for more than 4 years by now, but never had this problem before.

  • Michael Zumstein

    yes, worked like a charm! saved my day. thx

  • Kamilo

    Thanks

  • Anonymous

    Thanks, that helped even with error not-so-similar to it:

  • sushl

    Thanks

  • Darryl Ducasse

    You are kidding right?  That’s not an IDE, that is a JOKE. Eclipse sucks ass!

  • tanja

    thank you!
    you’ve just helped to recover my RAD7 from a huge crash during remote debugging on a unstable buggy server :)

  • Jim Grill

    I go through this on a regular basis.  I wish I had better options for java and python development.

  • Phpgeek Programmer

    thanks, fixing my problem while cannot opening eclipse workspace.

  • Bugme

    woot, works :) thanks

  • Yonisib

    huge thank! saved me the day.

  • Vinoth

    Worked like a gem :P Thanks for providing handy solution, saves my day

  • Jhavera

    Thanks for this post as it saved me a great deal of time with RSA 8.  Basically, I had a hard reboot with my entire Windows  7 which must have corrupted my  104.tree file (104 is the name of the file at that time).  After reading this and backing up my or.eclipse.core.resources directory, I deleted the 104.tree file and was able to start my RSA instance.  All work fine now.  When I shutdown RSA, a file 105.tree was created.

  • Ass^

    I fixed my SAP BO (who uses that internally) thanks to your solutions.

    Thank u ;)

  • MondaySufferer

    I had similar problem with Eclipse Helios on Mac OSX. I tried your suggestion with a little change. I remove .snap file from <>/.metadata/.plugins/org.eclipse.core.resources/ 
    This will save your efforts to re-import all the projects which can be a pain in the neck.

    Thanks!

    Hope its helpful to others.

    Cheers,
    MondaySufferer

    • Rajesh S

      Kewl !! Worked for me..Thanks !!!

    • David Jorge

      That worked fine with me. After a power down eclipse won’t starting and was stopped in the loading workbench message in the splash screen. After removing that file and starting with the clean option it launched.

    • KC

      thnx for the tip this saved a lot of time

    • Levent

      Great! It work for me. Thanks for your suggestion…

    • Andreas

      Great tip, “.snap” seems to be the issue in many cases!

    • http://www.facebook.com/brunocalado.physics Bruno Calado Ribeiro

      Worked for me. I’m using Debian 6. I eclipse with aptana and mercurial plugin.

    • plesatejvlk

      Thanks! That was it!

    • Čikić Nenad

      Excellent. Thanks a lot. I have started using juno eclipse and i am using mercurial plugin. I do not recall these problems with indigo, but then i am not working full time with eclipse.

    • j_mac

      Thanks! Saved my day

    • tom mahy

      thanks that worked great

    • Armand Sloan

      Very helpful! Thank you…

  • Mani

    thanks man..worked like a magic!!!

  • Richard

    I had the problem by eclipse starting, the following is crash task :
    /usr/bin/java -Xms40m -Xmx384m -Dorg.eclipse.equinox.p2.reconciler.dropins.directory=/usr/share …
    But i use the command line to startup is ok:
    sudo eclipse -clean
    eclipse system ask to confirm create a new workbench in /root/workbench

  • Ving1983

    It worked like a magic and saved my daty…Thank you very much…..

  • Adaan Smit

    works for me, thanx!!!

  • Maribel

    I had the same problem with Eclipse Indigo. I removed <>/.metadata/.plugins/org.eclipse.core.resources/.root/*tree file, and eclipse started without problems. Then I just had to import the project again.
    Thanks!

  • Enalmada

    Running a large task crashed eclipse and hung on restart. 
     This worked great: “back up my .root and .safetable directories then started Eclipse
    successfully. All my projects were gone. Next, I shut down Eclipse and
    removed the newly created .root and .safetable directories, replacing
    them with the old backed up versions. Eclipse started fine and all my
    projects showed up.”

  • Neha Giri

    Thanks! Worked for me!

  • Florian

    Worked, thanks!

  • test

    afasfas

  • Michelle Welden

    Thank you, that worked perfectly!

  • http://ahtik.com/ Ahti Kitsik

    Hmm, considering the amount of comments here maybe I should put together a plugin so fixing can be done from the Eclipse menu.. :) Just need to figure out a way to clean org.eclipse.core.resources
    dir even when it has locked files.