package org.jboss.cache.eviction;
import java.util.TimerTask;
import org.jboss.logging.Logger;
public class EvictionTimerTask extends TimerTask
{
private EvictionPolicy policy_;
private Logger log_ = Logger.getLogger(EvictionTimerTask.class);
public EvictionTimerTask(EvictionPolicy policy) {
policy_ = policy;
}
public void run()
{
synchronized(policy_) {
Region[] regions = policy_.getRegions();
for(int i=0; i < regions.length; i++) {
Region region = regions[i];
EvictionAlgorithm algo = region.getEvictionAlgorithm();
try {
algo.process(region);
} catch (EvictionException e) {
log_.error("run(): error processing eviction with exception: " +e.toString()
+" will reset the eviction queue list.");
region.resetEvictionQueues();
e.printStackTrace();
}
}
}
}
}