[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