Native Subversion Client Fails due to NoSuchMethodError

Still need help?

The Atlassian Community is here for you.

Ask the community

Symptoms

When setting up a Native Subversion Client in Fisheye/Crucible 2.1+ or upgrading from a previous version, the following error appears:

 
2009-11-12 12:32:18,411 ERROR [IncrementalPinger2] fisheye.app RepositoryScanner-slurp - Problem processing revisions from repo file:///subversion/repos/repo-name/ 
due to class java.lang.NoSuchMethodError - org.tigris.subversion.javahl.ChangePath.getNodeKind()I 
java.lang.NoSuchMethodError: org.tigris.subversion.javahl.ChangePath.getNodeKind()I 
at com.cenqua.fisheye.svn.diff.DiffProcessor.examinePaths(DiffProcessor.java:465)
at com.cenqua.fisheye.svn.diff.DiffProcessor.processMessage(DiffProcessor.java:283)
at com.cenqua.fisheye.svn.SvnRepositoryScanner.slurpRevisionBlock(SvnRepositoryScanner.java:414)
at com.cenqua.fisheye.rep.RepositoryScanner.processRevisions(RepositoryScanner.java:393)
at com.cenqua.fisheye.rep.RepositoryScanner.slurpRepository(RepositoryScanner.java:268)

The Subversion repository is version 1.5 or earlier.

Cause

Fisheye/Crucible 2.0+ requires Subversion 1.6+ (with the javahl libs 1.6+) in order for the native Subversion client to work.

Resolution

Upgrade Subversion repository to 1.6+ and download the javahl 1.6+ libs to connect Fisheye/Crucible 2.1+ to the Native Subversion Client.

Alternative Resolution 1
Alternatively, continue to use the SVNKit client that comes bundled with Fisheye/Crucible 2.1+ i.e by removing the Subversion client jar and dynamic library definition from Administration >> Server Settings so that Fisheye/Crucible uses the bundled SVNKit client.

Alternative Resolution 2

If Fisheye/Crucible fails to start up because of the above error (i.e. it's impossible to remove the native Subversion client settings in Administration), remove the following line from FISHEYE_INST/config.xml:

 
<svn-config jar="/path/to/jar" jnilib="path/to/dynamic lib"/> 

Fisheye/Crucible will use the bundled SVNKit client upon next restart.

If the above setting is missing from FISHEYE_INST/config.xml, but the Fisheye/Crucible server still fails to start up with the same error, ensure that the svn-javahl.jar is not in classpath:

  • It does not exist in FISHEYE_INST/lib or FISHEYE_HOME/lib directory, from whence the jars are loaded into Fisheye
  • It is not included in FISHEYE_LIBRARY_PATH

Last modified on Jul 31, 2018

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.