Mysterious Eclipse start-up error

I occasionally run into an issue with eclipse that is totally bizarre. Nine times out of ten, it’s completely opaque and even challenging to use the web to track down someone who articulates the problem in the same way. Luckily for me, when my latest issue hit I knew I had seen it before and *had* managed to find someone else with a similar problem.

I hit this issue with Eclipse 3.6.1 (Helios) running on Linux (Red Hat), though I have seen it reported in Galileo, other eclipse spin-offs and other platforms as well. When I fired up eclipse, it prompted me for the workspace as usual, but after I made my selection it gave a totally generic error message:

An error has occured. See the log file...

An extremely helpful error message.

The referenced .log file had a similarly opaque error message that came in the form of a few stack traces. Not being an expert on the eclipse codebase and having no interest in becoming such an expert, I have only included the stack traces below in an effort to help others find this page and find a solution to their problem.

Based on what I found after some searching around, the “right” thing to do to resolve the problem is to remove the .snap file from your workspace’s .metadata directory. So, if your project workspace is stored in /local/workspace , then you would run the following command to safely (i.e. reversibly) try fixing your project. Note that both versions of the command should not be split across multiple lines, even if they appear to be split because of line-wrapping in your browser.

Linux/MacOS X:

mv /local/workspace/.metadata/.plugins/org.eclipse.core.resources/.snap /local/workspace/.metadata/.plugins/org.eclipse.core.resources/.snap.bak

Windows:

move C:\local\workspace\.metadata\.plugins\org.eclipse.core.resources\.snap C:\local\workspace\.metadata\.plugins\org.eclipse.core.resources\.snap.bak

After taking this step eclipse was able to open my project without issue, hope the same works for you. If it works, then you can go ahead and remove the .snap.bak file at your convenience. If you have other tips or tricks or want to provide some more background on why this problem occurs and why this fixes it, then feel free to leave a comment below.

Here are the stack traces that I found in my .log file as promised for searchability:


!ENTRY org.eclipse.osgi 4 0 2011-08-01 08:21:06.713
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContainer
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:116)
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)
Caused by: org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: An error occurred while automatically activating bundle org.eclipse.core.resources (37).
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:121)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:453)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:393)
at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:466)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 14 more
Caused by: org.osgi.framework.BundleException: Exception in org.eclipse.core.resources.ResourcesPlugin.start() of bundle org.eclipse.core.resources.
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:417)
at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:265)
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:106)
... 23 more
Caused by: org.eclipse.core.internal.dtree.ObjectNotFoundException: Tree element '/trunk/bin/path/to/one/of/your/OutputClassFile$1.class' not found.
at org.eclipse.core.internal.dtree.AbstractDataTree.handleNotFound(AbstractDataTree.java:257)
at org.eclipse.core.internal.dtree.DeltaDataTree.getData(DeltaDataTree.java:585)
at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:50)
at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
at org.eclipse.core.internal.dtree.DeltaDataTree.asBackwardDelta(DeltaDataTree.java:88)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:816)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:792)
at org.eclipse.core.internal.watson.ElementTree.immutable(ElementTree.java:517)
at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:688)
at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1503)
at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:2134)
at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:1883)
at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:406)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
... 29 more

Advertisements
This entry was posted in Technical and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s