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: [email protected]
For additional commands, e-mail: [email protected]