[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