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