Conor MacNeill <>

Found Patch Suggested
r861839 r865271, r855658, r855411 r855707, r855626

r855411 | dlr | 2005-07-14 17:57:12 +0000 (Thu, 14 Jul 2005)

[in subversion/bindings/java/javahl/native/]
* org_tigris_subversion_javahl_SVNClient.cpp
  (Java_org_tigris_subversion_javahl_SVNClient_fileContent): Call
   JNIEntry() with a second argument of fileContent, rather than

Patch by: Conor MacNeill

r855626 | dlr | 2005-08-02 19:53:55 +0000 (Tue, 02 Aug 2005)

Loading of the JNI library should conclude after the first successful
attempt, rather than continuing attempts to load the native library
from other locations or using alternate names.  This fixes a bug where
a successful load of the library from a user-specified location would
subsequently trigger an exception due to the failure to terminate
attempts at loading the library.

Patch by: me
Suggested by: Conor MacNeill <>

[in subversion/bindings/java/javahl/]
* src/org/tigris/subversion/javahl/
  Replaced code from the static initializer block with a call to

  (loadNativeLibrary): A new class method called upon class
   initialization which eithe rloads the native library or throws an

r855658 | dlr | 2005-08-04 00:22:15 +0000 (Thu, 04 Aug 2005)

Add a streamy API to JavaHL for retrieving a versioned file's
contents, providing significant scalability benefits over the
pre-existing SVNClient.fileContent() API.

Issue: 2299
Patch by: Conor MacNeill <>
Review by: dlr

[in subversion/bindings/java/javahl/]
* native/SVNClient.cpp
  (fileContent): Modified to leverage new streamFileContent() method.

  (streamFileContent): Writes a versioned file's content to the
   specified OutputStream.

  (createReadStream): A new method factored out of fileContent() which
   is shared by the implementation of both it and the new
   streamFileContent() method.

* native/org_tigris_subversion_javahl_SVNClient.cpp
   Exports the SVNClient.streamFileContent() method into Java-land.

* native/SVNClient.h
  (streamFileContent): New public method.

  (createReadStream): New private method.

* src/org/tigris/subversion/javahl/
* src/org/tigris/subversion/javahl/
* src/org/tigris/subversion/javahl/
  (streamFileContent): New public method with default implementations
   delegating to native code.

* src/org/tigris/subversion/javahl/tests/
  (testBasicCatStream): New test for streamFileContent().

r855707 | dlr | 2005-08-08 16:21:36 +0000 (Mon, 08 Aug 2005)

[in subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/]
  (streamFileContent): Updated JavaDoc with a hint as to how to
   produce an InputStream.

Suggested by: Conor MacNeill

r861839 | dlr | 2006-10-04 17:36:06 +0000 (Wed, 04 Oct 2006)

JavaHL: Compile Java bytecode for the target platform of a Java 1.2
JVM.  The default is typically equal to the compiling JDK version, or
the value for the -source flag to javac (if lower).  Assume our Java
source code is JDK 1.2-compatible (as mentioned in

  (JAVA_OLDEST_WORKING_VER): Set the minimum Java version to 1.2.
  (SVN_CHECK_JDK): Pass in new JAVA_OLDEST_WORKING_VER parameter.

* build/ac-macros/java.m4
  (SVN_CHECK_JDK): Accept new JAVA_OLDEST_WORKING_VER parameter.  Pass
   it on to SVN_FIND_JDK.
  (SVN_FIND_JDK): Accept new JAVA_OLDEST_WORKING_VER parameter.  In
   JAVAC_FLAGS, set -target to this value, and -source to 1.2.
* build/generator/
  (WinGeneratorBase.get_proj_sources): When compiling Java bytecode,
   specify -target and -source as 1.2.  This is hard-coded for now,
   but -target could later be made a configuration option in the
   "[options]" section of build.conf.

Found by: Conor MacNeill <>
Tested by: pburba

r865271 | dlr | 2007-05-29 23:46:07 +0000 (Tue, 29 May 2007)

Improve accuracy in error reporting when unable to load the JavaHL's
native library.

[ in subversion/bindings/javahl/ ]

* src/org/tigris/subversion/javahl/
 (loadNativeLibrary): Report the earliest encountered exception to the
  caller (rather than the last encountered).

Patch by: Conor MacNeill <>