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