Author: brane
Date: Sun Jun  7 15:26:13 2026
New Revision: 1935107

Log:
Fix a bug in JavaHL where native code could modify a final attribute.

Found thanks to runtime warnings generated by OpenJDK 26.

* subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java
  (JNIObject.cppAddr): Make attribute private and not final.
  (JNIObject.getCppAddr): New protected accessor method.

Modified:
   
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java

Modified: 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java
 Sun Jun  7 14:48:48 2026        (r1935106)
+++ 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java
 Sun Jun  7 15:26:13 2026        (r1935107)
@@ -31,10 +31,15 @@ public abstract class JNIObject
      * slot for the address of the native peer. The JNI code controls this
      * field. If it is set to 0 then underlying JNI object has been freed
      */
-    protected final long cppAddr;
+    private long cppAddr = 0;
 
     protected JNIObject(long cppAddr)
     {
         this.cppAddr = cppAddr;
     }
+
+    protected long getCppAddr()
+    {
+        return cppAddr;
+    }
 }

Reply via email to