jfclere 2002/12/05 02:41:35 Modified: catalina/src/share/org/apache/catalina/valves PersistentValve.java Log: Now it works as I excepted it. I will move it to 5.0 soon. Revision Changes Path 1.2 +29 -9 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/PersistentValve.java Index: PersistentValve.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/PersistentValve.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- PersistentValve.java 29 Nov 2002 08:30:44 -0000 1.1 +++ PersistentValve.java 5 Dec 2002 10:41:35 -0000 1.2 @@ -174,11 +174,31 @@ HttpServletRequest hreq = (HttpServletRequest) request.getRequest(); String sessionId = hreq.getRequestedSessionId(); Manager manager = context.getManager(); - if (sessionId != null) { - if (manager != null) { - Session session = manager.findSession(sessionId); - if ((session != null) && session.isValid()) - session.access(); + if (sessionId != null && manager != null) { + if (manager instanceof PersistentManager) { + Store store = ((PersistentManager) manager).getStore(); + if (store != null) { + Session session = null; + try { + session = store.load(sessionId); + } catch (Exception e) { + log("deserializeError"); + } + if (session != null) { + if (!session.isValid() || + isSessionStale(session, System.currentTimeMillis())) { + log("session swapped in is invalid or expired"); + session.expire(); + store.remove(sessionId); + } else { + session.setManager(manager); + // session.setId(sessionId); Only if new ??? + manager.add(session); + // ((StandardSession)session).activate(); + session.access(); + } + } + } } } log("sessionId: " + sessionId);
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>