[infinispan-commits] Infinispan SVN: r270 - in trunk/core/src/main/java/org/infinispan: transaction/xa and 1 other directory.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Wed May 13 01:37:40 EDT 2009
Author: mircea.markus
Date: 2009-05-13 01:37:40 -0400 (Wed, 13 May 2009)
New Revision: 270
Modified:
trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java
trunk/core/src/main/java/org/infinispan/transaction/xa/TransactionTable.java
Log:
perf optimization: don't obtain the context from the ICC but pass it as an argument
Modified: trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java 2009-05-13 05:36:41 UTC (rev 269)
+++ trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java 2009-05-13 05:37:40 UTC (rev 270)
@@ -160,7 +160,7 @@
private Object enlistReadAndInvokeNext(InvocationContext ctx, VisitableCommand command) throws Throwable {
if (shouldEnlist(ctx)) {
- TransactionXaAdapter xaAdapter = enlist();
+ TransactionXaAdapter xaAdapter = enlist(ctx);
LocalTxInvocationContext localTxContext = (LocalTxInvocationContext) ctx;
localTxContext.setXaCache(xaAdapter);
}
@@ -169,7 +169,7 @@
private Object enlistWriteAndInvokeNext(InvocationContext ctx, WriteCommand command) throws Throwable {
if (shouldEnlist(ctx)) {
- TransactionXaAdapter xaAdapter = enlist();
+ TransactionXaAdapter xaAdapter = enlist(ctx);
LocalTxInvocationContext localTxContext = (LocalTxInvocationContext) ctx;
if (!isLocalModeForced(ctx)) {
xaAdapter.addModification(command);
@@ -181,13 +181,13 @@
return invokeNextInterceptor(ctx, command);
}
- public TransactionXaAdapter enlist() throws SystemException, RollbackException {
+ public TransactionXaAdapter enlist(InvocationContext ctx) throws SystemException, RollbackException {
Transaction transaction = tm.getTransaction();
if (transaction == null) throw new IllegalStateException("This should only be called in an tx scope");
int status = transaction.getStatus();
if (!isValid(status)) throw new IllegalStateException("Transaction " + transaction +
" is not in a valid state to be invoking cache operations on.");
- return txTable.getOrCreateXaAdapter(transaction);
+ return txTable.getOrCreateXaAdapter(transaction, ctx);
}
private boolean isValid(int status) {
Modified: trunk/core/src/main/java/org/infinispan/transaction/xa/TransactionTable.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/transaction/xa/TransactionTable.java 2009-05-13 05:36:41 UTC (rev 269)
+++ trunk/core/src/main/java/org/infinispan/transaction/xa/TransactionTable.java 2009-05-13 05:37:40 UTC (rev 270)
@@ -4,6 +4,7 @@
import org.infinispan.commands.CommandsFactory;
import org.infinispan.commands.write.WriteCommand;
import org.infinispan.config.Configuration;
+import org.infinispan.context.InvocationContext;
import org.infinispan.context.InvocationContextContainer;
import org.infinispan.factories.annotations.Inject;
import org.infinispan.interceptors.InterceptorChain;
@@ -68,7 +69,7 @@
return remoteTransaction;
}
- public TransactionXaAdapter getOrCreateXaAdapter(Transaction transaction) {
+ public TransactionXaAdapter getOrCreateXaAdapter(Transaction transaction, InvocationContext ctx) {
TransactionXaAdapter current = localTransactions.get(transaction);
if (current == null) {
Address localAddress = rpcManager != null ? rpcManager.getLocalAddress() : null;
@@ -81,7 +82,7 @@
log.error("Failed to emlist TransactionXaAdapter to transaction");
throw new CacheException(e);
}
- notifier.notifyTransactionRegistered(tx, icc.getThreadContext());
+ notifier.notifyTransactionRegistered(tx, ctx);
}
return current;
}
More information about the infinispan-commits
mailing list