Author: kfujino Date: Mon Apr 6 02:37:41 2015 New Revision: 1671471 URL: http://svn.apache.org/r1671471 Log: Avoid unnecessary call of DeltaRequest#addSessionListener in non-primary nodes.
Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/ha/session/DeltaRequest.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/ha/session/DeltaRequest.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/ha/session/DeltaRequest.java?rev=1671471&r1=1671470&r2=1671471&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/ha/session/DeltaRequest.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/ha/session/DeltaRequest.java Mon Apr 6 02:37:41 2015 @@ -204,9 +204,9 @@ public class DeltaRequest implements Ext case TYPE_LISTENER: SessionListener listener = (SessionListener) info.getValue(); if (info.getAction() == ACTION_SET) { - session.addSessionListener(listener); + session.addSessionListener(listener,false); } else { - session.removeSessionListener(listener); + session.removeSessionListener(listener,false); } break; default : Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java?rev=1671471&r1=1671470&r2=1671471&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java Mon Apr 6 02:37:41 2015 @@ -502,10 +502,14 @@ public class DeltaSession extends Standa @Override public void addSessionListener(SessionListener listener) { + addSessionListener(listener, true); + } + + public void addSessionListener(SessionListener listener, boolean addDeltaRequest) { lock(); try { super.addSessionListener(listener); - if (deltaRequest != null && listener instanceof ReplicatedSessionListener) { + if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) { deltaRequest.addSessionListener(listener); } } finally { @@ -515,10 +519,14 @@ public class DeltaSession extends Standa @Override public void removeSessionListener(SessionListener listener) { + removeSessionListener(listener, true); + } + + public void removeSessionListener(SessionListener listener, boolean addDeltaRequest) { lock(); try { super.removeSessionListener(listener); - if (deltaRequest != null && listener instanceof ReplicatedSessionListener) { + if (addDeltaRequest && deltaRequest != null && listener instanceof ReplicatedSessionListener) { deltaRequest.removeSessionListener(listener); } } finally { Modified: tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml?rev=1671471&r1=1671470&r2=1671471&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Mon Apr 6 02:37:41 2015 @@ -102,6 +102,13 @@ </fix> </changelog> </subsection> + <subsection name="Cluster"> + <changelog> + <fix> + Avoid unnecessary call of <code>DeltaRequest#addSessionListener</code> + in non-primary nodes. (kfujino) + </fix> + </changelog> <subsection name="WebSocket"> <changelog> <fix> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org