Native Subversion Client Fails due to NoSuchMethodError
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.
Fisheye/Crucible 2.0+ requires Subversion 1.6+ (with the javahl libs 1.6+) in order for the native Subversion client to work.
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
<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_HOME/libdirectory, from whence the jars are loaded into Fisheye
- It is not included in FISHEYE_LIBRARY_PATH