Index: core/src/main/java/org/infinispan/loaders/bucket/BucketBasedCacheStore.java =================================================================== --- core/src/main/java/org/infinispan/loaders/bucket/BucketBasedCacheStore.java (revision 1589) +++ core/src/main/java/org/infinispan/loaders/bucket/BucketBasedCacheStore.java (revision ) @@ -25,6 +25,8 @@ */ public abstract class BucketBasedCacheStore extends LockSupportCacheStore { + private volatile boolean needsPurging = false; + /** * Loads an entry from a Bucket, locating the relevant Bucket using the key's hash code. * @@ -66,6 +68,7 @@ bucket.addEntry(entry); insertBucket(bucket); } + if (entry.canExpire()) needsPurging = true; } /** @@ -115,7 +118,14 @@ boolean handle(Bucket bucket) throws CacheLoaderException; } + @Override + public void purgeExpired() throws CacheLoaderException { + if (needsPurging) { + super.purgeExpired(); + } //else no purging takes place + } + - // ah for closures in Java ... +// ah for closures in Java ... protected abstract class CollectionGeneratingBucketHandler implements BucketHandler{ Set generated = new HashSet(); public abstract boolean consider(Collection entries);