Author: manik.surtani(a)jboss.com
Date: 2008-05-15 11:53:01 -0400 (Thu, 15 May 2008)
New Revision: 5854
Added:
core/trunk/src/test/java/org/jboss/cache/cluster/ReplicationQueueTxTest.java
Modified:
core/trunk/src/main/java/org/jboss/cache/transaction/TransactionEntry.java
Log:
Better scrubbing of internals
Modified: core/trunk/src/main/java/org/jboss/cache/transaction/TransactionEntry.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/transaction/TransactionEntry.java 2008-05-15
14:26:09 UTC (rev 5853)
+++ core/trunk/src/main/java/org/jboss/cache/transaction/TransactionEntry.java 2008-05-15
15:53:01 UTC (rev 5854)
@@ -424,8 +424,8 @@
public void reset()
{
orderedSynchronizationHandler = null;
- if (modificationList != null) modificationList.clear();
- if (localModifications != null) localModifications.clear();
+ if (modificationList != null) modificationList = null;
+ if (localModifications != null) localModifications = null;
option = null;
locks.clear();
if (dummyNodesCreatedByCacheLoader != null)
dummyNodesCreatedByCacheLoader.clear();
Added: core/trunk/src/test/java/org/jboss/cache/cluster/ReplicationQueueTxTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/cluster/ReplicationQueueTxTest.java
(rev 0)
+++
core/trunk/src/test/java/org/jboss/cache/cluster/ReplicationQueueTxTest.java 2008-05-15
15:53:01 UTC (rev 5854)
@@ -0,0 +1,58 @@
+package org.jboss.cache.cluster;
+
+import org.jboss.cache.Cache;
+import org.jboss.cache.DefaultCacheFactory;
+import org.jboss.cache.config.Configuration;
+import org.jboss.cache.factories.UnitTestCacheConfigurationFactory;
+import org.jboss.cache.misc.TestingUtil;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import javax.transaction.TransactionManager;
+
+@Test(groups = {"functional", "transaction"})
+public class ReplicationQueueTxTest
+{
+ Cache cache, cache2;
+ TransactionManager txManager;
+
+ @BeforeMethod
+ public void setUp() throws CloneNotSupportedException
+ {
+ cache = new
DefaultCacheFactory().createCache(UnitTestCacheConfigurationFactory.createConfiguration(Configuration.CacheMode.REPL_ASYNC),
false);
+ cache.getConfiguration().setUseReplQueue(true);
+ cache.getConfiguration().setReplQueueInterval(100);
+ cache.getConfiguration().setReplQueueMaxElements(10);
+ cache.start();
+ cache2 = new DefaultCacheFactory().createCache(cache.getConfiguration().clone());
+
+ TestingUtil.blockUntilViewsReceived(60000, cache, cache2);
+ txManager = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
+ }
+
+ @AfterMethod
+ public void tearDown()
+ {
+ TestingUtil.killCaches(cache, cache2);
+ }
+
+ public void testTransactionalReplication() throws Exception
+ {
+ // outside of tx scope
+ cache.put("/a", "k", "v");
+
+ TestingUtil.sleepThread(200);
+
+ assert cache2.get("/a", "k").equals("v");
+
+ // now, a transactional call
+ txManager.begin();
+ cache2.put("/a", "k", "v2");
+ txManager.commit();
+
+ TestingUtil.sleepThread(200);
+
+ assert cache.get("/a", "k").equals("v2");
+ }
+}
Show replies by date