This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jxpath.git


The following commit(s) were added to refs/heads/master by this push:
     new 4d7c9804 Fix inconsistent synchronization of 
NamespaceResolver.pointer; locked 50% of time (SpotBugs: MT_CORRECTNESS 
IS2_INCONSISTENT_SYNC)
4d7c9804 is described below

commit 4d7c9804c35c66b7303eb2099ac5f3810222e61f
Author: Gary Gregory <[email protected]>
AuthorDate: Sun Nov 16 15:04:14 2025 -0500

    Fix inconsistent synchronization of NamespaceResolver.pointer; locked
    50% of time (SpotBugs: MT_CORRECTNESS IS2_INCONSISTENT_SYNC)
---
 src/changes/changes.xml                                           | 1 +
 src/main/java/org/apache/commons/jxpath/ri/NamespaceResolver.java | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index eb9851be..e7884ba0 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -52,6 +52,7 @@ The <action> type attribute can be add,update,fix,remove.
       <action type="fix" dev="ggregory" due-to="Gary Gregory">POM 
assembly:single does not generate binary convenience files (tar/zip).</action>
       <action type="fix" dev="ggregory" due-to="Dima1224, Gary Gregory">Make 
dynamicPropertyHandlerMap in ValueUtils thread-safe #251.</action>
       <action type="fix" dev="ggregory" due-to="Gary Gregory">Refactor 
JXPathIntrospector internal static maps to use concurrent classes instead of 
synchronization.</action>
+      <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix inconsistent 
synchronization of NamespaceResolver.pointer; locked 50% of time (SpotBugs: 
MT_CORRECTNESS IS2_INCONSISTENT_SYNC).</action>
       <!-- ADD -->
       <!-- UPDATE -->
       <action type="update" dev="ggregory" due-to="Gary Gregory, 
Dependabot">Bump org.apache.commons:commons-parent from 81 to 92 #239, #262, 
#265.</action>
diff --git a/src/main/java/org/apache/commons/jxpath/ri/NamespaceResolver.java 
b/src/main/java/org/apache/commons/jxpath/ri/NamespaceResolver.java
index 8e0e2f22..ddba003d 100644
--- a/src/main/java/org/apache/commons/jxpath/ri/NamespaceResolver.java
+++ b/src/main/java/org/apache/commons/jxpath/ri/NamespaceResolver.java
@@ -133,7 +133,7 @@ public class NamespaceResolver implements Cloneable, 
Serializable {
      *
      * @return Pointer
      */
-    public Pointer getNamespaceContextPointer() {
+    public synchronized Pointer getNamespaceContextPointer() {
         if (pointer == null && parent != null) {
             return parent.getNamespaceContextPointer();
         }
@@ -201,7 +201,7 @@ public class NamespaceResolver implements Cloneable, 
Serializable {
      *
      * @param pointer the Pointer to set.
      */
-    public void setNamespaceContextPointer(final NodePointer pointer) {
+    public synchronized void setNamespaceContextPointer(final NodePointer 
pointer) {
         this.pointer = pointer;
     }
 }

Reply via email to