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>