asmuts 02/05/13 11:46:25
Modified: src/java/org/apache/jcs/engine/memory/shrinking
ShrinkerThread.java
Log:
Changed order. Avoid spooling if expired.
Revision Changes Path
1.7 +23 -17
jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/shrinking/ShrinkerThread.java
Index: ShrinkerThread.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/shrinking/ShrinkerThread.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ShrinkerThread.java 13 May 2002 18:25:42 -0000 1.6
+++ ShrinkerThread.java 13 May 2002 18:46:25 -0000 1.7
@@ -166,6 +166,8 @@
if ( ce != null )
{
+ boolean ok = true;
+
long now = System.currentTimeMillis();
if ( log.isDebugEnabled() )
@@ -177,23 +179,6 @@
log.debug( "ce.getElementAttributes().getMaxLifeSeconds() *
1000 = " + ce.getElementAttributes().getMaxLifeSeconds() * 1000 );
}
- // Memory idle, to disk shrinkage
- if ( cache.getCacheAttributes().getMaxMemoryIdleTimeSeconds()
!= -1 )
- {
- long deadAt = ce.getElementAttributes().getLastAccessTime()
+ ( cache.getCacheAttributes().getMaxMemoryIdleTimeSeconds() * 1000 );
- if ( ( deadAt - now ) < 0 )
- {
- if ( log.isInfoEnabled() )
- {
- log.info( "Exceeded memory idle time, Pushing item
to disk -- " + ce.getKey() + " over by = " + String.valueOf( deadAt - now ) + " ms." );
- }
-
- cache.remove( ce.getKey() );
-
- cache.waterfal( ce );
- }
- }
-
////////////////////////////////////////////////
if ( !ce.getElementAttributes().getIsEternal() )
{
@@ -222,6 +207,7 @@
}
}
+ ok = false;
cache.remove( ce.getKey() );
}
else
@@ -250,10 +236,30 @@
}
}
+ ok = false;
cache.remove( ce.getKey() );
}
}// end if not eternal
+
+ // This should be last, since we wouldn't want to wast time
+ // spooling if the item is removed.
+ // Memory idle, to disk shrinkage
+ if ( ok && (
cache.getCacheAttributes().getMaxMemoryIdleTimeSeconds() != -1 ) )
+ {
+ long deadAt = ce.getElementAttributes().getLastAccessTime()
+ ( cache.getCacheAttributes().getMaxMemoryIdleTimeSeconds() * 1000 );
+ if ( ( deadAt - now ) < 0 )
+ {
+ if ( log.isInfoEnabled() )
+ {
+ log.info( "Exceeded memory idle time, Pushing item
to disk -- " + ce.getKey() + " over by = " + String.valueOf( deadAt - now ) + " ms." );
+ }
+
+ cache.remove( ce.getKey() );
+
+ cache.waterfal( ce );
+ }
+ }
}// end if ce != null
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>