Author: rjung Date: Mon Jan 31 20:05:06 2011 New Revision: 1065737 URL: http://svn.apache.org/viewvc?rev=1065737&view=rev Log: Fix a possible NPE when a parallel request invalidates the session before the current request has a chance to send the replication message.
Backport of r993042 from trunk resp. r999950 from TC6. Modified: tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java Modified: tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml?rev=1065737&r1=1065736&r2=1065737&view=diff ============================================================================== --- tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml (original) +++ tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml Mon Jan 31 20:05:06 2011 @@ -32,6 +32,11 @@ <section name="Tomcat OACC 0.1 (rjung)"> <subsection name="Cluster"> <fix> + Avoid a NPE in the DeltaManager when a parallel request invalidates the + session before the current request has a chance to send the replication + message. (rjung) + </fix> + <fix> <bug>50547</bug>: Add time stamp for CHANGE_SESSION_ID message and SESSION_EXPIRED message. (rjung) </fix> Modified: tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java?rev=1065737&r1=1065736&r2=1065737&view=diff ============================================================================== --- tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java (original) +++ tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java Mon Jan 31 20:05:06 2011 @@ -1297,6 +1297,11 @@ public class DeltaManager extends Cluste DeltaSession session = null; try { session = (DeltaSession) findSession(sessionId); + if (session == null) { + // A parallel request has called session.invalidate() which has + // remove the session from the Manager. + return null; + } DeltaRequest deltaRequest = session.getDeltaRequest(); session.lock(); SessionMessage msg = null; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org