[jbosscache-commits] JBoss Cache SVN: r7242 - in core/branches/flat/src/main/java/org/jboss/starobrno: transaction and 1 other directories.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Tue Dec 2 14:31:53 EST 2008


Author: manik.surtani at jboss.com
Date: 2008-12-02 14:31:53 -0500 (Tue, 02 Dec 2008)
New Revision: 7242

Modified:
   core/branches/flat/src/main/java/org/jboss/starobrno/batch/AutoBatchSupport.java
   core/branches/flat/src/main/java/org/jboss/starobrno/transaction/TransactionTable.java
   core/branches/flat/src/main/java/org/jboss/starobrno/tree/TreeCacheImpl.java
Log:
Added logging and fixed batching issue

Modified: core/branches/flat/src/main/java/org/jboss/starobrno/batch/AutoBatchSupport.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/batch/AutoBatchSupport.java	2008-12-02 17:12:22 UTC (rev 7241)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/batch/AutoBatchSupport.java	2008-12-02 19:31:53 UTC (rev 7242)
@@ -32,25 +32,38 @@
 @NotThreadSafe
 public abstract class AutoBatchSupport
 {
-   boolean startedBatch;
+   ThreadLocal<BatchDetails> batchDetails = new ThreadLocal<BatchDetails>()
+   {
+      @Override
+      protected BatchDetails initialValue()
+      {
+         return new BatchDetails();
+      }
+   };
    protected Cache cache;
 
-   // this count is to deal with reentrancy from within the same class
-   int invocationCount;
-
    protected void startAtomic()
    {
-      if (!startedBatch) startedBatch = cache.startBatch();
-      invocationCount++;
+      BatchDetails bd = batchDetails.get();
+      if (!bd.startedBatch) bd.startedBatch = cache.startBatch();
+      bd.invocationCount++;
    }
 
    protected void endAtomic()
    {
-      invocationCount--;
-      if (startedBatch && invocationCount == 0)
+      BatchDetails bd = batchDetails.get();
+      bd.invocationCount--;
+      if (bd.startedBatch && bd.invocationCount == 0)
       {
          cache.endBatch(true);
-         startedBatch = false;
+         bd.startedBatch = false;
       }
    }
+
+   private static class BatchDetails
+   {
+      boolean startedBatch;
+      // this count is to deal with reentrancy from within the same class
+      int invocationCount;
+   }
 }

Modified: core/branches/flat/src/main/java/org/jboss/starobrno/transaction/TransactionTable.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/transaction/TransactionTable.java	2008-12-02 17:12:22 UTC (rev 7241)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/transaction/TransactionTable.java	2008-12-02 19:31:53 UTC (rev 7242)
@@ -405,6 +405,7 @@
       {
          Address addr = rpcManager.getLocalAddress();
          gtx = GlobalTransaction.create(addr);
+         if (trace) log.trace("Creating new GlobalTransaction " + gtx);
          put(tx, gtx);
          TransactionContext transactionContext;
          try

Modified: core/branches/flat/src/main/java/org/jboss/starobrno/tree/TreeCacheImpl.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/tree/TreeCacheImpl.java	2008-12-02 17:12:22 UTC (rev 7241)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/tree/TreeCacheImpl.java	2008-12-02 19:31:53 UTC (rev 7242)
@@ -21,6 +21,8 @@
  */
 package org.jboss.starobrno.tree;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.jboss.cache.CacheStatus;
 import org.jboss.cache.NodeNotExistsException;
 import org.jboss.cache.Region;
@@ -41,6 +43,9 @@
  */
 public class TreeCacheImpl<K, V> extends TreeStructureSupport implements TreeCache<K, V>
 {
+   private static final Log log = LogFactory.getLog(TreeCacheImpl.class);
+   private static final boolean trace = log.isTraceEnabled();
+
    public TreeCacheImpl(Cache<K, V> cache)
    {
       super(cache);
@@ -286,6 +291,7 @@
    @SuppressWarnings("unchecked")
    public V put(Fqn fqn, K key, V value)
    {
+      if (trace) log.trace("Start: Putting value under key [" + key + "] for node [" + fqn + "]");
       startAtomic();
       try
       {
@@ -295,6 +301,7 @@
       finally
       {
          endAtomic();
+         if (trace) log.trace("End: Putting value under key [" + key + "] for node [" + fqn + "]");
       }
    }
 




More information about the jbosscache-commits mailing list