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

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Tue Jul 27 12:25:19 EDT 2010


Author: manik.surtani at jboss.com
Date: 2010-07-27 12:25:18 -0400 (Tue, 27 Jul 2010)
New Revision: 2110

Modified:
   trunk/core/src/main/java/org/infinispan/container/DefaultDataContainer.java
Log:
[ISPN-536] (The size of a local cache could be more accurate under concurrent modifications when expiration is enabled)

Modified: trunk/core/src/main/java/org/infinispan/container/DefaultDataContainer.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/container/DefaultDataContainer.java	2010-07-27 16:14:58 UTC (rev 2109)
+++ trunk/core/src/main/java/org/infinispan/container/DefaultDataContainer.java	2010-07-27 16:25:18 UTC (rev 2110)
@@ -128,8 +128,9 @@
       InternalCacheEntry e = peek(k);
       if (e != null) {
          if (e.isExpired()) {
-            mortalEntries.remove(k);
-            numEntries.getAndDecrement();
+            if (mortalEntries.remove(k) != null) {
+               numEntries.getAndDecrement();               
+            }
             e = null;
          } else {
             e.touch();
@@ -187,8 +188,9 @@
    public boolean containsKey(Object k) {
       InternalCacheEntry ice = peek(k);
       if (ice != null && ice.isExpired()) {
-         mortalEntries.remove(k);
-         numEntries.getAndDecrement();
+         if (mortalEntries.remove(k) != null) {
+            numEntries.getAndDecrement();            
+         }
          ice = null;
       }
       return ice != null;



More information about the infinispan-commits mailing list