Author: markt
Date: Mon May 25 22:32:57 2009
New Revision: 778524

URL: http://svn.apache.org/viewvc?rev=778524&view=rev
Log:
Fix case B in bug 43343. Don't try to swap out a session that is being accessed.

Modified:
    tomcat/trunk/java/org/apache/catalina/session/PersistentManagerBase.java

Modified: 
tomcat/trunk/java/org/apache/catalina/session/PersistentManagerBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/PersistentManagerBase.java?rev=778524&r1=778523&r2=778524&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/PersistentManagerBase.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/session/PersistentManagerBase.java 
Mon May 25 22:32:57 2009
@@ -1054,6 +1054,12 @@
                     int timeIdle = // Truncate, do not round up
                         (int) ((timeNow - session.getThisAccessedTime()) / 
1000L);
                     if (timeIdle > maxIdleSwap && timeIdle > minIdleSwap) {
+                        if (sessions[i] instanceof StandardSession) {
+                            if (((StandardSession) 
sessions[i]).accessCount.get() > 0) {
+                                // Session is currently being accessed - skip 
it
+                                continue;
+                            }
+                        }                       
                         if (log.isDebugEnabled())
                             log.debug(sm.getString
                                 ("persistentManager.swapMaxIdle",
@@ -1098,6 +1104,12 @@
                 int timeIdle = // Truncate, do not round up
                     (int) ((timeNow - sessions[i].getThisAccessedTime()) / 
1000L);
                 if (timeIdle > minIdleSwap) {
+                    if (sessions[i] instanceof StandardSession) {
+                        if (((StandardSession) sessions[i]).accessCount.get() 
> 0) {
+                            // Session is currently being accessed - skip it
+                            continue;
+                        }
+                    }
                     if(log.isDebugEnabled())
                         log.debug(sm.getString
                             ("persistentManager.swapTooManyActive",



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to