I blogged before about how bad is the choice to "incubate" Subversive in Eclipse.
Friday evening I wasted much time to find a tutorial on Eclipse and Polarion site explaining how to install Subversive in Ganymede. No way: Eclipse site point to Polarion and Polarion site points to Eclipse site, and both of them are outdated, the provided update links aren't working.
Googling around I finally found a site with a working url. Saying "working" I mean a url that at least lets me to install the plugin successfully. Infact, it installs fine, but now everytime I commit I get an error:

An error has occurred. See error log for more details. 
java.lang.NoClassDefFoundError

And when I check the details I see which class is missing and the plugin that is using it:

java.lang.NoClassDefFoundError: org/eclipse/ui/internal/util/SWTResourceUtil
	at org.polarion.team.svn.ui.composite.ResourceSelectionComposite$2.getColumnImage(ResourceSelectionComposite.java:281)
	at org.eclipse.jface.viewers.TableColumnViewerLabelProvider.update(TableColumnViewerLabelProvider.java:71)
	at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:145)
	at org.eclipse.jface.viewers.AbstractTableViewer.doUpdateItem(AbstractTableViewer.java:386)
	at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:466)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.runtime.Platform.run(Platform.java:880)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
	at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2041)
	at org.eclipse.jface.viewers.AbstractTableViewer.createItem(AbstractTableViewer.java:264)
	at org.eclipse.jface.viewers.AbstractTableViewer.internalRefreshAll(AbstractTableViewer.java:741)
	at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:633)
	at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:620)
	at org.eclipse.jface.viewers.AbstractTableViewer$2.run(AbstractTableViewer.java:576)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1365)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1328)
	at org.eclipse.jface.viewers.CheckboxTableViewer.preservingSelection(CheckboxTableViewer.java:296)
	at org.eclipse.jface.viewers.AbstractTableViewer.inputChanged(AbstractTableViewer.java:574)
	at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:251)
	at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1603)
	at org.polarion.team.svn.ui.composite.ResourceSelectionComposite.createControls(ResourceSelectionComposite.java:358)
	at org.polarion.team.svn.ui.composite.ResourceSelectionComposite.(ResourceSelectionComposite.java:119)
	at org.polarion.team.svn.ui.panel.local.CommitPanel.createControls(CommitPanel.java:205)
	at org.polarion.team.svn.ui.dialog.DefaultDialog.createMainPanel(DefaultDialog.java:329)
	at org.polarion.team.svn.ui.dialog.DefaultDialog.createContents(DefaultDialog.java:190)
	at org.eclipse.jface.window.Window.create(Window.java:431)
	at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089)
	at org.polarion.team.svn.ui.dialog.DefaultDialog.create(DefaultDialog.java:218)
	at org.eclipse.jface.window.Window.open(Window.java:790)
	at org.polarion.team.svn.ui.dialog.DefaultDialog.open(DefaultDialog.java:131)
	at org.polarion.team.svn.ui.extension.impl.DefaultCommitActionFactory$1.open(DefaultCommitActionFactory.java:42)
	at org.polarion.team.svn.ui.action.local.CommitAction.runImpl(CommitAction.java:42)
	at org.polarion.team.svn.ui.action.AbstractSVNTeamAction$2.runImpl(AbstractSVNTeamAction.java:61)
	at org.polarion.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:70)
	at org.polarion.team.svn.core.operation.LoggedOperation.run(LoggedOperation.java:38)
	at org.polarion.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:105)
	at org.polarion.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:91)
	at org.polarion.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:82)
	at org.polarion.team.svn.ui.action.AbstractSVNTeamAction.run(AbstractSVNTeamAction.java:58)
	at org.eclipse.team.internal.ui.actions.TeamAction.runWithEvent(TeamAction.java:548)
	at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:241)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:583)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:500)
	at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3401)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3033)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	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:382)
	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:549)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1236)

Subversive is calling unexisting method. Probably also this version is outdated.
So, no way, I cannot manage to have Subversive working with Eclipse.
I will probably try to decompile that class and fix the method call, as it is impossible (for me) to find a working Subversive plugin for Ganymede.

I would use Subclipse, that never gave me so many problems, but the team that I recently joined are using features that are not provided by Subclipse (svn:externals property).
Other guys are using Eclipse Europa, I will probably switch back to Europa or keep the error popping on the screen at every commit. The problem, again, is that switching from Europa to Ganymede I had to do a fresh checkout of every project. Because, without doing that, Eclipse was loosing the meta information of subversion and was disabling the version control in the project...

What a nightmare!


9 Responses to “Ganymede and Subversive the nightmare continues”  

  1. 1 Ignacio Coloma
  2. 2 Mark Phippard

    Subclipse has always supported svn:externals. It is really a feature of Subversion itself, and the API’s used by Subclipse all just support it.

    The support we have in Subclipse is at least on par with what you get from native Subversion. I can think of a few extra things we do that you cannot do from the command line, but most of the features are based on what you can do with the command line.

    Mark

  3. 3 Luigi

    Thanks Mark, thanks everybody :). I will check again Subclipse, it is still my favourite plugin for SVN. I just joined a new project so I am struggling with so much code and when facing the problem with svn:external (I was getting “skipping” on the svn console) I didn’t do further investigations and I got running what other people was using. As a contractor I need to be adaptive on many things, tools included.

    By the way, I found the way to install subversive in ganymede, when I have time I’ll post information for my future remark, and for everyone that will possibly search a solution to same problem I faced recently.

  4. 4 Nathan

    Hi Luigi,

    can you post your solution to Subversive on Ganymede? I am hitting the same problem as you with the NoClassDefFound error whenever I commit (and at other times as well when configuring Subversive).

    Thank you!
    Nathan

  5. 5 Luigi

    Hi Natan,

    My “solution” is here.
    Hope it will work also for you.

    Cheers.
    Luigi.

  6. 6 Ilzar

    I have solve this problem for me:

    Just copy class SWTResourceUtil from org.eclipse.ui.workbench_3.2.2.M20070119-0800.jar (or similar, where you can find this class) to Ganymede jar (can be this one org.eclipse.ui.workbench_3.4.0.I20080606-1300.jar) at org/eclipse/ui/internal/util.

    That is help me… I hope it help you too!

  7. 7 antonio

    ahhaha,
    just had the same problem!
    And found your post, how small is the world!

    I guess I’ll try to convince the new company where I’m working to use the old good Subclipse then!

  8. 8 Linas Virbalas

    Hello,

    I was using Subclipse happily for a while, but than it started throwing the following error:
    “Folder ” does not exist remotely”

    It was just impossible to check out new projects from SVN (though command line svn utility still worked).

    The solution was to switch from Subclipse to Subversive. But than I had very similar problems with Subversive as described in this article, i.e. every SVN action throwed an exception:
    “org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: An error occurred while automatically activating bundle org.eclipse.team.svn.ui (312)”

    The solution to overcome this error was quite trivial: I just needed to create a new workspace.

    System: Eclipse 3.4.1, Mac OS 10.5.5.

    Good luck!
    Linas

  9. 9 jahdasa

    thanks Ilzar,
    i followed your work and problem solved.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>



Calendar

August 2008
M T W T F S S
« Jul   Sep »
 123
45678910
11121314151617
18192021222324
25262728293031

Follow me

twitter flickr LinkedIn feed

Subscribe by email

Enter your email address:

Archives


Categories

Tag Cloud


Listening