[tomcat] 01/03: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63441

2019-05-16 Thread markt
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

2019-05-16 Thread markt
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

2019-05-16 Thread markt
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