[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