Native Subversion Client Fails due to NoSuchMethodError

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Symptoms

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

1 2 3 4 5 6 7 8 9 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:

1 2 <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

Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.