Author: markt
Date: Mon Dec 11 19:45:59 2006
New Revision: 486005
URL: http://svn.apache.org/viewvc?view=rev&rev=486005
Log:
Fix bug 40551. When restoring a session from a PersistentManager to w new node
update the session Id with the new jvmRoute. Based on a patch by Chris Chandler.
Modified:
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/Request.java
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java
tomcat/container/tc5.5.x/webapps/docs/changelog.xml
Modified:
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/Request.java
URL:
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/Request.java?view=diff&rev=486005&r1=486004&r2=486005
==============================================================================
---
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/Request.java
(original)
+++
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/Request.java
Mon Dec 11 19:45:59 2006
@@ -2207,6 +2207,12 @@
if ((session != null) && !session.isValid())
session = null;
if (session != null) {
+ if(!requestedSessionId.equals(session.getId())) {
+ Cookie cookie = new Cookie(Globals.SESSION_COOKIE_NAME,
+ session.getIdInternal());
+ configureSessionCookie(cookie);
+ response.addCookie(cookie);
+ }
session.access();
return (session);
}
Modified:
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java
URL:
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java?view=diff&rev=486005&r1=486004&r2=486005
==============================================================================
---
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java
(original)
+++
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java
Mon Dec 11 19:45:59 2006
@@ -772,6 +772,20 @@
}
} else {
session = store.load(id);
+
+ String jvmRoute = getJvmRoute();
+ if (jvmRoute != null && session != null) {
+ String requestJvmRoute = null;
+ int index = id.indexOf(".");
+ if (index > 0) {
+ requestJvmRoute = id.substring(index + 1,
id.length());
+ }
+ if (requestJvmRoute != null &&
+ !requestJvmRoute.equals(jvmRoute)) {
+ id = id.substring(0, index) + "." + jvmRoute;
+ session.setId(id);
+ }
+ }
}
} catch (ClassNotFoundException e) {
log.error(sm.getString("persistentManager.deserializeError", id,
e));
Modified: tomcat/container/tc5.5.x/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?view=diff&rev=486005&r1=486004&r2=486005
==============================================================================
--- tomcat/container/tc5.5.x/webapps/docs/changelog.xml (original)
+++ tomcat/container/tc5.5.x/webapps/docs/changelog.xml Mon Dec 11 19:45:59 2006
@@ -86,6 +86,11 @@
Ben Clifford. (markt)
</fix>
<fix>
+ <bug>40551</bug>: When restoring sessions from a PersistentManager to
+ a new node ensure that the session ID is updated to reflect the new
+ jvmRoute. Based on a patch by Chris Chandler. (markt)
+ </fix>
+ <fix>
<bug>40585</bug>: Fix parameterised constructor for
o.a.juli.FileHandler
so parameters have an effect. (markt)
</fix>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]