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: [email protected]
For additional commands, e-mail: [email protected]