[exo-jcr-commits] exo-jcr SVN: r2285 - in kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src: test/java/org/exoplatform/services/cache/impl/jboss and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Apr 15 11:24:39 EDT 2010


Author: nfilotto
Date: 2010-04-15 11:24:38 -0400 (Thu, 15 Apr 2010)
New Revision: 2285

Modified:
   kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/AbstractExoCache.java
   kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/test/java/org/exoplatform/services/cache/impl/jboss/TestAbstractExoCache.java
Log:
EXOJCR-672: a Temporary fix until JBCACHE-1577 will be fixed

Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/AbstractExoCache.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/AbstractExoCache.java	2010-04-15 15:06:48 UTC (rev 2284)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/AbstractExoCache.java	2010-04-15 15:24:38 UTC (rev 2285)
@@ -43,6 +43,7 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -107,17 +108,22 @@
    /**
     * {@inheritDoc}
     */
+   @SuppressWarnings("unchecked")
    public void clearCache()
    {
-      final Node<K, V> rootNode = cache.getRoot();
-      for (Node<K, V> node : rootNode.getChildren())
+      Set<Fqn> internalFqns = cache.getInternalFqns();
+      for (Object childName : cache.peek(Fqn.ROOT, false, false).getChildrenNames())
       {
-         if (node == null)
+         if (!internalFqns.contains(Fqn.fromElements(childName)))
          {
-            continue;
+            cache.getInvocationContext().getOptionOverrides().setCacheModeLocal(true);
+            cache.removeNode(Fqn.fromRelativeElements(Fqn.ROOT, childName));
          }
-         remove(getKey(node));
       }
+      // The code above can be replaced with the code below once the bug JBCACHE-1577
+      // will be fixed in JBC
+//      cache.getInvocationContext().getOptionOverrides().setCacheModeLocal(true);
+//      cache.removeNode(Fqn.ROOT);
       onClearCache();
    }
 

Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/test/java/org/exoplatform/services/cache/impl/jboss/TestAbstractExoCache.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/test/java/org/exoplatform/services/cache/impl/jboss/TestAbstractExoCache.java	2010-04-15 15:06:48 UTC (rev 2284)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/test/java/org/exoplatform/services/cache/impl/jboss/TestAbstractExoCache.java	2010-04-15 15:24:38 UTC (rev 2285)
@@ -311,18 +311,21 @@
          assertEquals(1, listener1.remove);
          assertEquals(1, listener2.remove);
          assertEquals(0, listener3.remove);
+         cache1.put(new MyKey("c"), "c");
          cache1.clearCache();
          assertEquals(0, cache1.getCacheSize());
-         assertEquals(null, cache2.get(new MyKey("b")));
-         assertEquals(0, cache2.getCacheSize());
-         assertEquals(3, listener1.put);
-         assertEquals(3, listener2.put);
+         assertEquals(null, cache1.get(new MyKey("b")));         
+         assertEquals("c", cache2.get(new MyKey("b")));
+         assertEquals("c", cache2.get(new MyKey("c")));
+         assertEquals(2, cache2.getCacheSize());
+         assertEquals(4, listener1.put);
+         assertEquals(4, listener2.put);
          assertEquals(1, listener3.put);
-         assertEquals(2, listener1.get);
-         assertEquals(2, listener2.get);
+         assertEquals(3, listener1.get);
+         assertEquals(3, listener2.get);
          assertEquals(1, listener3.get);
-         assertEquals(2, listener1.remove);
-         assertEquals(2, listener2.remove);
+         assertEquals(1, listener1.remove);
+         assertEquals(1, listener2.remove);
          assertEquals(0, listener3.remove);
          assertEquals(1, listener1.clearCache);
          assertEquals(0, listener2.clearCache);
@@ -335,15 +338,15 @@
          Thread.sleep(40);
          assertEquals("a", cache2.get(new MyKey("a")));
          assertEquals("b", cache2.get(new MyKey("b")));
-         assertEquals(2, cache2.getCacheSize());
-         assertEquals(5, listener1.put);
-         assertEquals(5, listener2.put);
+         assertEquals(3, cache2.getCacheSize());
+         assertEquals(6, listener1.put);
+         assertEquals(6, listener2.put);
          assertEquals(1, listener3.put);
-         assertEquals(2, listener1.get);
-         assertEquals(4, listener2.get);
+         assertEquals(3, listener1.get);
+         assertEquals(5, listener2.get);
          assertEquals(1, listener3.get);
-         assertEquals(2, listener1.remove);
-         assertEquals(2, listener2.remove);
+         assertEquals(1, listener1.remove);
+         assertEquals(1, listener2.remove);
          assertEquals(0, listener3.remove);
          assertEquals(1, listener1.clearCache);
          assertEquals(0, listener2.clearCache);
@@ -380,16 +383,16 @@
          values.put(new MyKey("d"), "d");
          cache1.putMap(values);
          assertEquals(2, cache1.getCacheSize());
-         assertEquals(2, cache2.getCacheSize());
+         assertEquals(3, cache2.getCacheSize());
          assertEquals(1, cache3.getCacheSize());
-         assertEquals(5, listener1.put);
-         assertEquals(5, listener2.put);
+         assertEquals(6, listener1.put);
+         assertEquals(6, listener2.put);
          assertEquals(1, listener3.put);
-         assertEquals(2, listener1.get);
-         assertEquals(4, listener2.get);
+         assertEquals(3, listener1.get);
+         assertEquals(5, listener2.get);
          assertEquals(1, listener3.get);
-         assertEquals(2, listener1.remove);
-         assertEquals(2, listener2.remove);
+         assertEquals(1, listener1.remove);
+         assertEquals(1, listener2.remove);
          assertEquals(0, listener3.remove);
          assertEquals(1, listener1.clearCache);
          assertEquals(0, listener2.clearCache);
@@ -401,20 +404,20 @@
          assertEquals(0, cache1.getCacheSize());
          assertEquals(0, cache2.getCacheSize());
          assertEquals(0, cache3.getCacheSize());
-         assertEquals(5, listener1.put);
-         assertEquals(5, listener2.put);
+         assertEquals(6, listener1.put);
+         assertEquals(6, listener2.put);
          assertEquals(1, listener3.put);
-         assertEquals(2, listener1.get);
-         assertEquals(4, listener2.get);
+         assertEquals(3, listener1.get);
+         assertEquals(5, listener2.get);
          assertEquals(1, listener3.get);
-         assertEquals(2, listener1.remove);
-         assertEquals(2, listener2.remove);
+         assertEquals(1, listener1.remove);
+         assertEquals(1, listener2.remove);
          assertEquals(0, listener3.remove);
          assertEquals(1, listener1.clearCache);
          assertEquals(0, listener2.clearCache);
          assertEquals(0, listener3.clearCache);
          assertEquals(2, listener1.expire);
-         assertEquals(2, listener2.expire);
+         assertEquals(3, listener2.expire);
          assertEquals(1, listener3.expire);
       }
       finally
@@ -699,5 +702,11 @@
       {
          return value.hashCode();
       }
+
+      @Override
+      public String toString()
+      {
+         return value;
+      }
    }
 }



More information about the exo-jcr-commits mailing list