svn commit: r1935107 - subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl

[email protected] Sun, 07 Jun 2026 15:26:13 -0000
Newsgroups gmane.comp.version-control.subversion.svn
Message-ID <178084597391.3770560.2781680217715008520@svn03-he-fi>
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;
+    }
 }