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;
+ }
}