Author: dsahlberg Date: Sun Oct 30 16:11:38 2022 New Revision: 1904938 URL: http://svn.apache.org/viewvc?rev=1904938&view=rev Log: Java binding fixes.
* subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeException.java, subversion/bindings/javahl/src/org/tigris/subversion/javahl/NativeException.java (getMessage): Use StringBuilder instead of StringBuffer and avoid a NullPointerException if message is null. * subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java, (testGetMessage): New function to test getMessage's handling of a null message. Patch by: Thomas Singer @ Syntevo https://lists.apache.org/thread/6063p5fh1hqptj8zm3kn5hn9pdgsbb3d Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeException.java subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NativeException.java subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java subversion/trunk/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeException.java URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeException.java?rev=1904938&r1=1904937&r2=1904938&view=diff ============================================================================== --- subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeException.java (original) +++ subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeException.java Sun Oct 30 16:11:38 2022 @@ -86,7 +86,11 @@ class NativeException extends Subversion */ public String getMessage() { - StringBuffer msg = new StringBuffer(super.getMessage()); + StringBuilder msg = new StringBuilder(); + String message = super.getMessage(); + if (message != null) { + msg.append(message); + } // ### This might be better off in JNIUtil::handleSVNError(). String src = getSource(); if (src != null) Modified: subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NativeException.java URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NativeException.java?rev=1904938&r1=1904937&r2=1904938&view=diff ============================================================================== --- subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NativeException.java (original) +++ subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NativeException.java Sun Oct 30 16:11:38 2022 @@ -85,7 +85,11 @@ class NativeException extends Subversion */ public String getMessage() { - StringBuffer msg = new StringBuffer(super.getMessage()); + StringBuilder msg = new StringBuilder(); + String message = super.getMessage(); + if (message != null) { + msg.append(message); + } // ### This might be better off in JNIUtil::handleSVNError(). String src = getSource(); if (src != null) Modified: subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1904938&r1=1904937&r2=1904938&view=diff ============================================================================== --- subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original) +++ subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Sun Oct 30 16:11:38 2022 @@ -27,6 +27,7 @@ import static org.junit.Assert.*; import org.apache.subversion.javahl.callback.*; import org.apache.subversion.javahl.remote.*; import org.apache.subversion.javahl.types.*; +import org.apache.subversion.javahl.NativeException; import java.io.File; import java.io.FileOutputStream; @@ -4747,6 +4748,17 @@ public class BasicTests extends SVNTests } /** + * Test getMessage in NativeException. + * @throws Throwable + */ + public void testGetMessage() throws Throwable + { + /* NativeException with a null message previously threw a NullPointerException */ + assertEquals("", new NativeException(null, null, null, 0).getMessage()); + assertEquals("messagesvn: source: (apr_err=0)", new NativeException("message", "source", null, 0).getMessage()); + } + + /** * @return <code>file</code> converted into a -- possibly * <code>canonical</code>-ized -- Subversion-internal path * representation. Modified: subversion/trunk/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java?rev=1904938&r1=1904937&r2=1904938&view=diff ============================================================================== --- subversion/trunk/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java (original) +++ subversion/trunk/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java Sun Oct 30 16:11:38 2022 @@ -22,6 +22,8 @@ */ package org.tigris.subversion.javahl; +import org.tigris.subversion.javahl.NativeException; + import java.io.File; import java.io.FileOutputStream; import java.io.FileNotFoundException; @@ -3321,6 +3323,17 @@ public class BasicTests extends SVNTests } /** + * Test getMessage in NativeException. + * @throws Throwable + */ + public void testGetMessage() throws Throwable + { + /* NativeException with a null message previously threw a NullPointerException */ + assertEquals("", new NativeException(null, null, 0).getMessage()); + assertEquals("messagesvn: source: (apr_err=0)", new NativeException("message", "source", 0).getMessage()); + } + + /** * @return <code>file</code> converted into a -- possibly * <code>canonical</code>-ized -- Subversion-internal path * representation.
