[infinispan-commits] Infinispan SVN: r1432 - trunk/core/src/main/java/org/infinispan/container/entries.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Tue Feb 2 08:48:43 EST 2010


Author: manik.surtani at jboss.com
Date: 2010-02-02 08:48:43 -0500 (Tue, 02 Feb 2010)
New Revision: 1432

Modified:
   trunk/core/src/main/java/org/infinispan/container/entries/TransientCacheEntry.java
   trunk/core/src/main/java/org/infinispan/container/entries/TransientMortalCacheEntry.java
Log:
Better calculation of ExpiryTime

Modified: trunk/core/src/main/java/org/infinispan/container/entries/TransientCacheEntry.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/container/entries/TransientCacheEntry.java	2010-02-02 13:48:13 UTC (rev 1431)
+++ trunk/core/src/main/java/org/infinispan/container/entries/TransientCacheEntry.java	2010-02-02 13:48:43 UTC (rev 1432)
@@ -8,6 +8,8 @@
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 
+import static java.lang.Math.min;
+
 /**
  * A cache entry that is transient, i.e., it can be considered expired afer a period of not being used.
  *
@@ -64,7 +66,7 @@
    }
 
    public long getExpiryTime() {
-      return -1;
+      return cacheValue.maxIdle > -1 ? cacheValue.lastUsed + cacheValue.maxIdle : -1;
    }
 
    public final long getMaxIdle() {

Modified: trunk/core/src/main/java/org/infinispan/container/entries/TransientMortalCacheEntry.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/container/entries/TransientMortalCacheEntry.java	2010-02-02 13:48:13 UTC (rev 1431)
+++ trunk/core/src/main/java/org/infinispan/container/entries/TransientMortalCacheEntry.java	2010-02-02 13:48:43 UTC (rev 1432)
@@ -8,6 +8,8 @@
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 
+import static java.lang.Math.min;
+
 /**
  * A cache entry that is both transient and mortal.
  *
@@ -65,7 +67,11 @@
    }
 
    public final long getExpiryTime() {
-      return cacheValue.lifespan > -1 ? cacheValue.created + cacheValue.lifespan : -1;
+      long lset = cacheValue.lifespan > -1 ? cacheValue.created + cacheValue.lifespan : -1;
+      long muet = cacheValue.maxIdle > -1 ? cacheValue.lastUsed + cacheValue.maxIdle : -1;
+      if (lset == -1) return muet;
+      if (muet == -1) return lset;
+      return min(lset, muet);
    }
 
    public InternalCacheValue toInternalCacheValue() {



More information about the infinispan-commits mailing list