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

remm pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/9.0.x by this push:
     new 50e5712ab7 Sync access for stats
50e5712ab7 is described below

commit 50e5712ab7f8a667d0e49f4593f7144dc6d318f1
Author: remm <r...@apache.org>
AuthorDate: Wed Sep 27 09:50:44 2023 +0200

    Sync access for stats
    
    Refactor and deprecate getDeltaRequest. Avoid useless try nesting.
    isDirty would need a sync, but this is likely "on purpose". I marked it
    as an issue in coverity.
    Found by coverity.
---
 .../apache/catalina/ha/session/DeltaManager.java   |  4 +++-
 .../apache/catalina/ha/session/DeltaSession.java   | 27 ++++++++++++----------
 2 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/java/org/apache/catalina/ha/session/DeltaManager.java 
b/java/org/apache/catalina/ha/session/DeltaManager.java
index 4db3e54ce4..70e71f8d1b 100644
--- a/java/org/apache/catalina/ha/session/DeltaManager.java
+++ b/java/org/apache/catalina/ha/session/DeltaManager.java
@@ -277,7 +277,9 @@ public class DeltaManager extends ClusterManagerBase {
     }
 
     public int getReceivedQueueSize() {
-        return receivedMessageQueue.size();
+        synchronized (receivedMessageQueue) {
+            return receivedMessageQueue.size();
+        }
     }
 
     /**
diff --git a/java/org/apache/catalina/ha/session/DeltaSession.java 
b/java/org/apache/catalina/ha/session/DeltaSession.java
index 3b3d17f40f..7e6b7e7b6e 100644
--- a/java/org/apache/catalina/ha/session/DeltaSession.java
+++ b/java/org/apache/catalina/ha/session/DeltaSession.java
@@ -123,7 +123,7 @@ public class DeltaSession extends StandardSession 
implements Externalizable, Clu
      */
     @Override
     public boolean isDirty() {
-        return getDeltaRequest().getSize() > 0;
+        return deltaRequest.getSize() > 0;
     }
 
     /**
@@ -194,22 +194,19 @@ public class DeltaSession extends StandardSession 
implements Externalizable, Clu
      */
     @Override
     public void applyDiff(byte[] diff, int offset, int length) throws 
IOException, ClassNotFoundException {
+        Thread currentThread = Thread.currentThread();
+        ClassLoader contextLoader = currentThread.getContextClassLoader();
         lockInternal();
         try (ObjectInputStream stream = ((ClusterManager) 
getManager()).getReplicationStream(diff, offset, length)) {
-            Thread currentThread = Thread.currentThread();
-            ClassLoader contextLoader = currentThread.getContextClassLoader();
-            try {
-                ClassLoader[] loaders = getClassLoaders();
-                if (loaders != null && loaders.length > 0) {
-                    currentThread.setContextClassLoader(loaders[0]);
-                }
-                getDeltaRequest().readExternal(stream);
-                getDeltaRequest().execute(this, ((ClusterManager) 
getManager()).isNotifyListenersOnReplication());
-            } finally {
-                currentThread.setContextClassLoader(contextLoader);
+            ClassLoader[] loaders = getClassLoaders();
+            if (loaders != null && loaders.length > 0) {
+                currentThread.setContextClassLoader(loaders[0]);
             }
+            deltaRequest.readExternal(stream);
+            deltaRequest.execute(this, ((ClusterManager) 
getManager()).isNotifyListenersOnReplication());
         } finally {
             unlockInternal();
+            currentThread.setContextClassLoader(contextLoader);
         }
     }
 
@@ -647,6 +644,12 @@ public class DeltaSession extends StandardSession 
implements Externalizable, Clu
         }
     }
 
+    /**
+     * Get the request.
+     * @return the request
+     * @deprecated Unused. This method will be removed in Tomcat 12.
+     */
+    @Deprecated
     public DeltaRequest getDeltaRequest() {
         return deltaRequest;
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to