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]>

Reply via email to