[jbosscache-commits] JBoss Cache SVN: r7170 - core/branches/flat/src/main/java/org/jboss/starobrno/batch.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Wed Nov 19 13:08:48 EST 2008


Author: manik.surtani at jboss.com
Date: 2008-11-19 13:08:47 -0500 (Wed, 19 Nov 2008)
New Revision: 7170

Modified:
   core/branches/flat/src/main/java/org/jboss/starobrno/batch/AutoBatchSupport.java
Log:
Support for reentrancy from within the same class

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-11-19 17:59:09 UTC (rev 7169)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/batch/AutoBatchSupport.java	2008-11-19 18:08:47 UTC (rev 7170)
@@ -21,6 +21,7 @@
  */
 package org.jboss.starobrno.batch;
 
+import net.jcip.annotations.NotThreadSafe;
 import org.jboss.starobrno.Cache;
 
 /**
@@ -28,18 +29,24 @@
  *
  * @author Manik Surtani (<a href="mailto:manik AT jboss DOT org">manik AT jboss DOT org</a>)
  */
+ at NotThreadSafe
 public abstract class AutoBatchSupport
 {
    boolean startedBatch;
    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++;
    }
 
    protected void endAtomic()
    {
-      if (startedBatch) cache.endBatch(true);
+      invocationCount--;
+      if (startedBatch && invocationCount == 0) cache.endBatch(true);
    }
 }




More information about the jbosscache-commits mailing list