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]