Eclipse, SVN, Subclipse, and case sensitivity
I don't know what it was about today, but I did something different when setting up a new workspace in Eclipse. We recently branched our code to work on a new feature for the site. I did my usual trick of copying my "Tip of the Tree" Eclipse workspace to a new directory and renaming it. I then launched Eclipse with the new workspace, deleted all of the old projects, and lastly imported the projects for the newly branched code. The problem was this time all of the nice Subclipse icons didn't show up. After repeating this process a couple of times, it finally dawned on me to check the Eclipse .log. It had this lovely message in it:
Provided SVN information does not match that on disk for project
A quick Google search didn't turn up anything helpful. Needless to say after a couple hours of banging of head against the desk I found the problem. Some combination of Eclipse, SVN, and Subclipse was case sensitive. I was saving time when importing the projects and just trying in the path, turns out even on Windows "c:\source\" is different than "c:\Source". The lesson in all of this is to only use the directory browser when selecting projects to import, otherwise the case may haunt you.
Along the way I also upgrade my versions of Subclipse and SVN, that lead to the following message showing up in my Eclipse .log:
!ENTRY org.eclipse.osgi 2005-12-06 12:06:18.377 !MESSAGE While loading class "org.tigris.subversion.svnclientadapter.commandline.Helper", thread "Thread-2" timed out waiting (5000ms) for thread "Worker-0" to finish starting bundle "org.tigris.subversion.subclipse.core". To avoid deadlock, thread "Thread-2" is proceeding but "org.tigris.subversion.svnclientadapter.commandline.Helper" may not be fully initialized. !STACK 0 java.lang.Exception: Generated exception. at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass(EclipseClassLoader.java:108) at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:337) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:389) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:350) at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:78) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) at org.tigris.subversion.svnclientadapter.commandline.CommandLine$CharacterStreamPumper.pumpStream(CommandLine.java:308) at org.tigris.subversion.svnclientadapter.commandline.CommandLine$StreamPumper.run(CommandLine.java:245) at java.lang.Thread.run(Thread.java:534)
!ENTRY org.eclipse.osgi 2005-12-06 12:06:23.715 !MESSAGE While loading class "org.tigris.subversion.subclipse.ui.console.SVNOutputConsole$2", thread "main" timed out waiting (5000ms) for thread "Worker-0" to finish starting bundle "org.tigris.subversion.subclipse.ui". To avoid deadlock, thread "main" is proceeding but "org.tigris.subversion.subclipse.ui.console.SVNOutputConsole$2" may not be fully initialized. !STACK 0 java.lang.Exception: Generated exception. at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass(EclipseClassLoader.java:108) at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:337) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:389) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:350) at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:78) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) at org.tigris.subversion.subclipse.ui.console.SVNOutputConsole.createPage(SVNOutputConsole.java:160) at org.eclipse.ui.internal.console.ConsoleView.doCreatePage(ConsoleView.java:258) at org.eclipse.ui.part.PageBookView.createPage(PageBookView.java:315) at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:613) at org.eclipse.ui.internal.console.ConsoleView$1.run(ConsoleView.java:331) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3057) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2716) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163) 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:324) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334) at org.eclipse.core.launcher.Main.basicRun(Main.java:278) at org.eclipse.core.launcher.Main.run(Main.java:973) at org.eclipse.core.launcher.Main.main(Main.java:948)
I was only able to find one reference to that and by all indications it is a harmless error. At least after I corrected the case of the project path everything seems to be working fine. Not sure what brought that message on I kind of abandoned the scientific method of only changing one thing at a time when I entered the second hour of trying to figure out why things stopped working.
Comments
Posted by: Mark Phippard | December 6, 2005 8:15 PM
Posted by: DanielR | December 6, 2005 11:09 PM
Posted by: Mark Phippard | December 7, 2005 8:27 AM
Posted by: Denny | December 7, 2005 7:55 PM