[jbosscache-commits] JBoss Cache SVN: r4853 - core/branches/1.4.X/tests/functional/org/jboss/cache/aop/loader.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Thu Dec 13 17:47:36 EST 2007


Author: galder.zamarreno at jboss.com
Date: 2007-12-13 17:47:36 -0500 (Thu, 13 Dec 2007)
New Revision: 4853

Modified:
   core/branches/1.4.X/tests/functional/org/jboss/cache/aop/loader/FileCacheLoaderAopCollectionsTest.java
Log:
[00019737] Two test methods added. The latter replicates the issue the customer is seeing in this support case, where removal operations on collections loaded from cache loader mess up other instances in collection. The first test method does the removal of a collection in memory which works fine.

Modified: core/branches/1.4.X/tests/functional/org/jboss/cache/aop/loader/FileCacheLoaderAopCollectionsTest.java
===================================================================
--- core/branches/1.4.X/tests/functional/org/jboss/cache/aop/loader/FileCacheLoaderAopCollectionsTest.java	2007-12-13 22:39:01 UTC (rev 4852)
+++ core/branches/1.4.X/tests/functional/org/jboss/cache/aop/loader/FileCacheLoaderAopCollectionsTest.java	2007-12-13 22:47:36 UTC (rev 4853)
@@ -8,35 +8,40 @@
 
 import org.w3c.dom.Element;
 import org.jboss.cache.xml.XmlHelper;
+import org.jboss.cache.aop.test.Address;
+import org.jboss.cache.aop.test.Person;
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
+import java.util.List;
+import java.util.ArrayList;
+
 /**
  */
-public class FileCacheLoaderAopCollectionsTest extends CacheLoaderTestsBase {
+public class FileCacheLoaderAopCollectionsTest extends CacheLoaderTestsBase
+{
 
+   protected Element getCacheLoaderConfig(String loc) throws Exception
+   {
+      String xml = "            <config>\n" +
+                  "                \n" +
+                  "                <passivation>false</passivation>\n" +
+                  "                <preload></preload>\n" +
+                  "\n" +
+                  "                <cacheloader>\n" +
+                  "                    <class>org.jboss.cache.loader.FileCacheLoader</class>\n" +
+                  "                    <properties>\n" +
+                  "                        location=" + loc + "\n" +
+                  "                    </properties>\n" +
+                  "                    <async>false</async>\n" +
+                  "                    <fetchPersistentState>false</fetchPersistentState>\n" +
+                  "                    <ignoreModifications>false</ignoreModifications>\n" +
+                  "                </cacheloader>\n" +
+                  "                \n" +
+                  "            </config>";
+      return XmlHelper.stringToElement(xml);
+   }
 
-    protected Element getCacheLoaderConfig(String loc) throws Exception
-    {
-        String xml = "            <config>\n" +
-                "                \n" +
-                "                <passivation>false</passivation>\n" +
-                "                <preload></preload>\n" +
-                "\n" +
-                "                <cacheloader>\n" +
-                "                    <class>org.jboss.cache.loader.FileCacheLoader</class>\n" +
-                "                    <properties>\n" +
-                "                        location=" + loc + "\n" +
-                "                    </properties>\n" +
-                "                    <async>false</async>\n" +
-                "                    <fetchPersistentState>false</fetchPersistentState>\n" +
-                "                    <ignoreModifications>false</ignoreModifications>\n" +
-                "                </cacheloader>\n" +
-                "                \n" +
-                "            </config>";
-        return XmlHelper.stringToElement(xml);
-    }
-
    protected void configureCache() throws Exception {
       String tmp_location = System.getProperty("java.io.tmpdir", "c:\\tmp");
       cache.setCacheLoaderConfiguration(getSingleCacheLoaderConfig("", "org.jboss.cache.loader.FileCacheLoader", "", false, true, false));
@@ -65,4 +70,75 @@
    {
    }
 
+   public void testPojoCollectionRemove() throws Exception
+   {
+      String fqn = "/list";
+
+      Person brian = new Person(); // instantiate a Person object named joe
+      brian.setName("Brian");
+
+      Person manik = new Person(); // instantiate a Person object named joe
+      manik.setName("Manik");
+
+      List list = new ArrayList();
+      list.add(brian);
+      list.add(manik);
+
+      cache.putObject(fqn, list);
+
+      List proxyList = (List) cache.getObject(fqn);
+
+      brian = (Person)proxyList.get(0);
+      assertEquals("Brian", brian.getName());
+      manik = (Person)proxyList.get(1);
+      assertEquals("Manik", manik.getName());
+
+      proxyList.remove(0);
+
+      manik = (Person)proxyList.get(0);
+      assertEquals("Manik", manik.getName());
+   }
+
+   public void testPojoCollectionLoadAndRemoveAfterRestart() throws Exception
+   {
+      String fqn = "/list";
+
+      Person brian = new Person(); // instantiate a Person object named joe
+      brian.setName("Brian");
+
+      Person manik = new Person(); // instantiate a Person object named joe
+      manik.setName("Manik");
+
+      Person bela = new Person(); // instantiate a Person object named joe
+      bela.setName("Bela");
+
+      List list = new ArrayList();
+      list.add(brian);
+      list.add(manik);
+
+      cache.putObject(fqn, list);
+
+      List proxyList = (List) cache.getObject(fqn);
+
+      brian = (Person)proxyList.get(0);
+      assertEquals("Brian", brian.getName());
+      manik = (Person)proxyList.get(1);
+      assertEquals("Manik", manik.getName());
+
+      stopCache();
+
+      startCache();
+
+      proxyList = (List) cache.getObject(fqn);
+
+      brian = (Person)proxyList.get(0);
+      assertEquals("Brian", brian.getName());
+      manik = (Person)proxyList.get(1);
+      assertEquals("Manik", manik.getName());
+
+      proxyList.remove(0);
+
+      manik = (Person)proxyList.get(0);
+      assertEquals("Manik", manik.getName());
+   }
 }




More information about the jbosscache-commits mailing list