[tomcat] 01/03: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63441
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 7.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 88bb3f358033060e297e5612327e98a9b99bc6e8 Author: Mark Thomas AuthorDate: Thu May 16 10:48:17 2019 +0100 Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63441 Further streamline the processing of session creation messages in the DeltaManager to reduce the possibility of a session update message being processed before the session has been created. --- .../apache/catalina/ha/session/DeltaManager.java | 7 +++- .../apache/catalina/ha/session/DeltaSession.java | 49 ++ webapps/docs/changelog.xml | 10 + 3 files changed, 38 insertions(+), 28 deletions(-) diff --git a/java/org/apache/catalina/ha/session/DeltaManager.java b/java/org/apache/catalina/ha/session/DeltaManager.java index 06cf47d..fc4e065 100644 --- a/java/org/apache/catalina/ha/session/DeltaManager.java +++ b/java/org/apache/catalina/ha/session/DeltaManager.java @@ -484,12 +484,17 @@ public class DeltaManager extends ClusterManagerBase{ */ @Override public Session createEmptySession() { -return getNewDeltaSession() ; +return new DeltaSession(this); } /** * Get new session class to be used in the doLoad() method. + * + * @return a new session + * + * @deprecated Unused. This will be removed in Tomcat 10. */ +@Deprecated protected DeltaSession getNewDeltaSession() { return new DeltaSession(this); } diff --git a/java/org/apache/catalina/ha/session/DeltaSession.java b/java/org/apache/catalina/ha/session/DeltaSession.java index c91494d..abafbf1 100644 --- a/java/org/apache/catalina/ha/session/DeltaSession.java +++ b/java/org/apache/catalina/ha/session/DeltaSession.java @@ -103,7 +103,9 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus */ public DeltaSession(Manager manager) { super(manager); -this.resetDeltaRequest(); +boolean recordAllActions = manager instanceof ClusterManagerBase && +((ClusterManagerBase)manager).isRecordAllActions(); +deltaRequest = new DeltaRequest(getIdInternal(), recordAllActions); } // - ReplicatedMapEntry @@ -298,11 +300,11 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus public void setMaxInactiveInterval(int interval, boolean addDeltaRequest) { super.maxInactiveInterval = interval; -if (addDeltaRequest && (deltaRequest != null)) { +if (addDeltaRequest) { +lock(); try { -lock(); deltaRequest.setMaxInactiveInterval(interval); -}finally{ +} finally { unlock(); } } @@ -321,9 +323,9 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus public void setNew(boolean isNew, boolean addDeltaRequest) { super.setNew(isNew); -if (addDeltaRequest && (deltaRequest != null)){ +if (addDeltaRequest){ +lock(); try { -lock(); deltaRequest.setNew(isNew); }finally{ unlock(); @@ -346,10 +348,10 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus } public void setPrincipal(Principal principal, boolean addDeltaRequest) { -try { +try { lock(); super.setPrincipal(principal); -if (addDeltaRequest && (deltaRequest != null)) +if (addDeltaRequest) deltaRequest.setPrincipal(principal); } finally { unlock(); @@ -368,11 +370,12 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus } public void setAuthType(String authType, boolean addDeltaRequest) { -try { +try { lock(); super.setAuthType(authType); -if (addDeltaRequest && (deltaRequest != null)) +if (addDeltaRequest) { deltaRequest.setAuthType(authType); +} } finally { unlock(); } @@ -427,7 +430,7 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus ((ClusterManagerBase)manager).registerSessionAtReplicationValve(this); } } - + // - Session Public Methods /** @@ -523,7 +526,7 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus lock(); try { super.addSessionListener(listener); -if (addDeltaRequest && deltaRequest != null && listener instanceof
[tomcat] 01/03: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63441
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit c013959ed35fdd58ba8f9f4709b6e225d53e2fe8 Author: Mark Thomas AuthorDate: Thu May 16 10:48:17 2019 +0100 Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63441 Further streamline the processing of session creation messages in the DeltaManager to reduce the possibility of a session update message being processed before the session has been created. --- .../apache/catalina/ha/session/DeltaManager.java | 5 +++- .../apache/catalina/ha/session/DeltaSession.java | 32 ++ webapps/docs/changelog.xml | 10 +++ 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/java/org/apache/catalina/ha/session/DeltaManager.java b/java/org/apache/catalina/ha/session/DeltaManager.java index 321193b..065e5af 100644 --- a/java/org/apache/catalina/ha/session/DeltaManager.java +++ b/java/org/apache/catalina/ha/session/DeltaManager.java @@ -474,13 +474,16 @@ public class DeltaManager extends ClusterManagerBase{ */ @Override public Session createEmptySession() { -return getNewDeltaSession() ; +return new DeltaSession(this); } /** * Get new session class to be used in the doLoad() method. * @return a new session + * + * @deprecated Unused. This will be removed in Tomcat 10. */ +@Deprecated protected DeltaSession getNewDeltaSession() { return new DeltaSession(this); } diff --git a/java/org/apache/catalina/ha/session/DeltaSession.java b/java/org/apache/catalina/ha/session/DeltaSession.java index 3e375f3..231b1be 100644 --- a/java/org/apache/catalina/ha/session/DeltaSession.java +++ b/java/org/apache/catalina/ha/session/DeltaSession.java @@ -101,7 +101,9 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus */ public DeltaSession(Manager manager) { super(manager); -this.resetDeltaRequest(); +boolean recordAllActions = manager instanceof ClusterManagerBase && +((ClusterManagerBase)manager).isRecordAllActions(); +deltaRequest = new DeltaRequest(getIdInternal(), recordAllActions); } // - ReplicatedMapEntry @@ -291,7 +293,7 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus public void setMaxInactiveInterval(int interval, boolean addDeltaRequest) { super.maxInactiveInterval = interval; -if (addDeltaRequest && (deltaRequest != null)) { +if (addDeltaRequest) { lock(); try { deltaRequest.setMaxInactiveInterval(interval); @@ -314,7 +316,7 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus public void setNew(boolean isNew, boolean addDeltaRequest) { super.setNew(isNew); -if (addDeltaRequest && (deltaRequest != null)){ +if (addDeltaRequest){ lock(); try { deltaRequest.setNew(isNew); @@ -342,7 +344,7 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus lock(); try { super.setPrincipal(principal); -if (addDeltaRequest && (deltaRequest != null)) +if (addDeltaRequest) deltaRequest.setPrincipal(principal); } finally { unlock(); @@ -364,8 +366,9 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus lock(); try { super.setAuthType(authType); -if (addDeltaRequest && (deltaRequest != null)) +if (addDeltaRequest) { deltaRequest.setAuthType(authType); +} } finally { unlock(); } @@ -510,7 +513,7 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus lock(); try { super.addSessionListener(listener); -if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) { +if (addDeltaRequest && listener instanceof ReplicatedSessionListener) { deltaRequest.addSessionListener(listener); } } finally { @@ -527,7 +530,7 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus lock(); try { super.removeSessionListener(listener); -if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) { +if (addDeltaRequest && listener instanceof ReplicatedSessionListener) { deltaRequest.removeSessionListener(listener); } } finally { @@ -592,21 +595,14 @@ public class DeltaSession extends
[tomcat] 01/03: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63441
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomcat.git commit e8cad1a635a97f1d9358bb6fffa3f31768c60e13 Author: Mark Thomas AuthorDate: Thu May 16 10:48:17 2019 +0100 Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63441 Further streamline the processing of session creation messages in the DeltaManager to reduce the possibility of a session update message being processed before the session has been created. --- .../apache/catalina/ha/session/DeltaManager.java | 5 +++- .../apache/catalina/ha/session/DeltaSession.java | 32 ++ webapps/docs/changelog.xml | 10 +++ 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/java/org/apache/catalina/ha/session/DeltaManager.java b/java/org/apache/catalina/ha/session/DeltaManager.java index ee76f55..9f3abef 100644 --- a/java/org/apache/catalina/ha/session/DeltaManager.java +++ b/java/org/apache/catalina/ha/session/DeltaManager.java @@ -468,13 +468,16 @@ public class DeltaManager extends ClusterManagerBase{ */ @Override public Session createEmptySession() { -return getNewDeltaSession() ; +return new DeltaSession(this); } /** * Get new session class to be used in the doLoad() method. * @return a new session + * + * @deprecated Unused. This will be removed in Tomcat 10. */ +@Deprecated protected DeltaSession getNewDeltaSession() { return new DeltaSession(this); } diff --git a/java/org/apache/catalina/ha/session/DeltaSession.java b/java/org/apache/catalina/ha/session/DeltaSession.java index d61817e..d25f622 100644 --- a/java/org/apache/catalina/ha/session/DeltaSession.java +++ b/java/org/apache/catalina/ha/session/DeltaSession.java @@ -102,7 +102,9 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus */ public DeltaSession(Manager manager) { super(manager); -this.resetDeltaRequest(); +boolean recordAllActions = manager instanceof ClusterManagerBase && +((ClusterManagerBase)manager).isRecordAllActions(); +deltaRequest = new DeltaRequest(getIdInternal(), recordAllActions); } // - ReplicatedMapEntry @@ -292,7 +294,7 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus public void setMaxInactiveInterval(int interval, boolean addDeltaRequest) { super.maxInactiveInterval = interval; -if (addDeltaRequest && (deltaRequest != null)) { +if (addDeltaRequest) { lock(); try { deltaRequest.setMaxInactiveInterval(interval); @@ -315,7 +317,7 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus public void setNew(boolean isNew, boolean addDeltaRequest) { super.setNew(isNew); -if (addDeltaRequest && (deltaRequest != null)){ +if (addDeltaRequest){ lock(); try { deltaRequest.setNew(isNew); @@ -343,7 +345,7 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus lock(); try { super.setPrincipal(principal); -if (addDeltaRequest && (deltaRequest != null)) +if (addDeltaRequest) deltaRequest.setPrincipal(principal); } finally { unlock(); @@ -365,8 +367,9 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus lock(); try { super.setAuthType(authType); -if (addDeltaRequest && (deltaRequest != null)) +if (addDeltaRequest) { deltaRequest.setAuthType(authType); +} } finally { unlock(); } @@ -512,7 +515,7 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus lock(); try { super.addSessionListener(listener); -if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) { +if (addDeltaRequest && listener instanceof ReplicatedSessionListener) { deltaRequest.addSessionListener(listener); } } finally { @@ -529,7 +532,7 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus lock(); try { super.removeSessionListener(listener); -if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) { +if (addDeltaRequest && listener instanceof ReplicatedSessionListener) { deltaRequest.removeSessionListener(listener); } } finally { @@ -594,21 +597,14 @@ public class DeltaSession extends