You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bo...@apache.org on 2002/08/27 21:11:20 UTC
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session PersistentManagerBase.java StoreBase.java
bobh 2002/08/27 12:11:20
Modified: catalina/src/share/org/apache/catalina/session
PersistentManagerBase.java StoreBase.java
Log:
This is a fix for bug 5507.
Revision Changes Path
1.2 +24 -4 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java
Index: PersistentManagerBase.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PersistentManagerBase.java 18 Jul 2002 16:47:53 -0000 1.1
+++ PersistentManagerBase.java 27 Aug 2002 19:11:20 -0000 1.2
@@ -377,6 +377,26 @@
/**
+ * Return true, if the session id is loaded in memory
+ * otherwise false is returned
+ *
+ * @param id The session id for the session to be searched for
+ *
+ * @exception IOException if an input/output error occurs while
+ * processing this request
+ */
+ public boolean isLoaded( String id ){
+ try {
+ if ( super.findSession(id) != null )
+ return true;
+ } catch (IOException e) {
+ log("checking isLoaded for id, " + id + ", "+e.getMessage(), e);
+ }
+ return false;
+ }
+
+
+ /**
* Return the maximum number of active Sessions allowed, or -1 for
* no limit.
*/
1.2 +11 -5 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StoreBase.java
Index: StoreBase.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StoreBase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- StoreBase.java 18 Jul 2002 16:47:53 -0000 1.1
+++ StoreBase.java 27 Aug 2002 19:11:20 -0000 1.2
@@ -313,7 +313,13 @@
int timeIdle = // Truncate, do not round up
(int) ((timeNow - session.getLastAccessedTime()) / 1000L);
if (timeIdle >= maxInactiveInterval) {
- session.expire();
+ if ( ( (PersistentManagerBase) manager).isLoaded( keys[i] )) {
+ // recycle old backup session
+ session.recycle();
+ } else {
+ // expire swapped out session
+ session.expire();
+ }
remove(session.getId());
}
} catch (IOException e) {
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>