[jbosscache-commits] JBoss Cache SVN: r8237 - in core/trunk/src: test/java/org/jboss/cache/loader and 1 other directory.
jbosscache-commits at lists.jboss.org
jbosscache-commits at lists.jboss.org
Thu Sep 24 06:28:05 EDT 2009
Author: mircea.markus
Date: 2009-09-24 06:28:05 -0400 (Thu, 24 Sep 2009)
New Revision: 8237
Added:
core/trunk/src/test/java/org/jboss/cache/loader/ParentDataLoadedTest.java
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java
Log:
[JBCACHE-1541] - When modifying evicted node, parent nodes are marked as loaded
Modified: core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java 2009-09-23 15:28:49 UTC (rev 8236)
+++ core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java 2009-09-24 10:28:05 UTC (rev 8237)
@@ -319,7 +319,11 @@
{
// just create a dummy node in memory
n = helper.wrapNodeForWriting(ctx, fqn, true, true, true, false, false);
- n.setDataLoaded(false);
+ for (NodeSPI node = n; node != null && node.isCreated(); node = node.getParentDirect())
+ {
+ node.setDataLoaded(false);
+ }
+
}
if (nodeData != null)
{
Added: core/trunk/src/test/java/org/jboss/cache/loader/ParentDataLoadedTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/loader/ParentDataLoadedTest.java (rev 0)
+++ core/trunk/src/test/java/org/jboss/cache/loader/ParentDataLoadedTest.java 2009-09-24 10:28:05 UTC (rev 8237)
@@ -0,0 +1,45 @@
+package org.jboss.cache.loader;
+
+import org.jboss.cache.AbstractSingleCacheTest;
+import org.jboss.cache.CacheSPI;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.UnitTestCacheFactory;
+import org.jboss.cache.config.CacheLoaderConfig;
+import org.jboss.cache.factories.UnitTestConfigurationFactory;
+import org.jboss.cache.loader.testloaders.DummyInMemoryCacheLoader;
+import org.testng.annotations.Test;
+
+ at Test(groups = "functional", testName = "loader.ParentDataLoadedTest")
+public class ParentDataLoadedTest extends AbstractSingleCacheTest
+{
+ private static final Fqn<String> FQN = Fqn.fromElements("a", "a", "a");
+ private CacheSPI<String, String> cache;
+
+ public CacheSPI createCache() throws Exception
+ {
+ UnitTestCacheFactory<String, String> cf = new UnitTestCacheFactory<String, String>();
+ cache = (CacheSPI<String, String>) cf.createCache("configs/local-tx.xml", false, getClass());
+ cache.getConfiguration().setEvictionConfig(null);
+ CacheLoaderConfig cacheLoaderConfig = UnitTestConfigurationFactory.buildSingleCacheLoaderConfig(false, "", DummyInMemoryCacheLoader.class.getName(), "", false, true, false, false, false);
+ cache.getConfiguration().setCacheLoaderConfig(cacheLoaderConfig);
+
+ cache.start();
+
+ return cache;
+ }
+
+ public void testParents()
+ {
+ cache.put(FQN.getParent().getParent(), "test", "test");
+ cache.put(FQN.getParent(), "test", "test");
+ cache.put(FQN, "test", "test");
+
+ cache.evict(FQN.ROOT, true);
+
+ cache.put(FQN, "test", "new");
+
+ assert cache.get(FQN, "test") != null;
+ assert cache.get(FQN.getParent(), "test") != null;
+ assert cache.get(FQN.getParent().getParent(), "test") != null;
+ }
+}
More information about the jbosscache-commits
mailing list