[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