You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by jf...@apache.org on 2002/12/05 11:41:35 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves PersistentValve.java

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:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>