core/src/main/java/org/infinispan/interceptors/impl/BatchingInterceptor.java
/**
    * Simply check if there is an ongoing tx. <ul> <li>If there is one, this is a no-op and just passes the call up the
    * chain.</li> <li>If there isn't one and there is a batch in progress, resume the batch's tx, pass up, and finally
    * suspend the batch's tx.</li> <li>If there is no batch in progress, just pass the call up the chain.</li> </ul>
    */
Simply check if there is an ongoing tx.  If there is one, this is a no-op and just passes the call up the
chain. If there isn't one and there is a batch in progress, resume the batch's tx, pass up, and finally
suspend the batch's tx. If there is no batch in progress, just pass the call up the chain. 
Simply check if there is an ongoing tx . If there is one this is a no - op and just passes the call up the chain . If there isn ' t one and there is a batch in progress resume the batch ' s tx pass up and finally suspend the batch ' s tx . If there is no batch in progress just pass the call up the chain .
@Override
   public Object handleDefault(InvocationContext ctx, VisitableCommand command) throws Throwable {
      if (!ctx.isOriginLocal()) {
         return invokeNext(ctx, command);
      }
      Transaction tx;
      if (transactionManager.getTransaction() != null || (tx = batchContainer.getBatchTransaction()) == null) {
         return invokeNext(ctx, command);
      }
      try {
         transactionManager.resume(tx);
         if (ctx.isInTxScope()) {
            return invokeNext(ctx, command);
         }
         log.tracef("Called with a non-tx invocation context: %s", ctx);
         InvocationContext txInvocationContext = invocationContextFactory.createInvocationContext(true, -1);
         return invokeNext(txInvocationContext, command);
      } finally {
         suspendTransaction();
      }
   }
@ Override public Object handleDefault ( InvocationContext ctx , VisitableCommand command ) throws Throwable { if ( ! ctx . isOriginLocal ( ) ) { return invokeNext ( ctx , command ) ; } Transaction tx ; if ( transactionManager . getTransaction ( ) != null || ( tx = batchContainer . getBatchTransaction ( ) ) == null ) { return invokeNext ( ctx , command ) ; } try { transactionManager . resume ( tx ) ; if ( ctx . isInTxScope ( ) ) { return invokeNext ( ctx , command ) ; } log . tracef ( "Called with a non-tx invocation context: %s" , ctx ) ; InvocationContext txInvocationContext = invocationContextFactory . createInvocationContext ( true , - 1 ) ; return invokeNext ( txInvocationContext , command ) ; } finally { suspendTransaction ( ) ; } }
Simply check if there is an ongoing tx.
Simply check if there is an ongoing tx .
// Nothing to do for remote calls // The active transaction means we are in an auto-batch. // No batch means a read-only auto-batch. // Either way, we don't need to do anything