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

Reply via email to