You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ds...@apache.org on 2022/10/30 16:11:39 UTC

svn commit: r1904938 - in /subversion/trunk/subversion/bindings/javahl: src/org/apache/subversion/javahl/ src/org/tigris/subversion/javahl/ tests/org/apache/subversion/javahl/ tests/org/tigris/subversion/javahl/

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.