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.


Reply via email to