private CompletableFuture < Void > completeCache ( ByteString cacheName ) throws Throwable { TxState state = globalTxTable . getState ( new CacheXid ( cacheName , xid ) ) ; HotRodServer . CacheInfo cacheInfo = server . getCacheInfo ( cacheName . toString ( ) , header . getVersion ( ) , header . getMessageId ( ) , true ) ; AdvancedCache < ? , ? > cache = server . cache ( cacheInfo , header , subject ) ; RpcManager rpcManager = cache . getRpcManager ( ) ; if ( rpcManager == null || rpcManager . getAddress ( ) . equals ( state . getOriginator ( ) ) ) { if ( isTraceEnabled ( ) ) { log ( ) . tracef ( "[%s] Completing local executed transaction." , xid ) ; } return asyncCompleteLocalTransaction ( cache , state . getTimeout ( ) ) ; } else if ( rpcManager . getMembers ( ) . contains ( state . getOriginator ( ) ) ) { if ( isTraceEnabled ( ) ) { log ( ) . tracef ( "[%s] Forward remotely executed transaction to %s." , xid , state . getOriginator ( ) ) ; } return forwardCompleteCommand ( cacheName , rpcManager , state ) ; } else { if ( isTraceEnabled ( ) ) { log ( ) . tracef ( "[%s] Originator, %s, left the cluster." , xid , state . getOriginator ( ) ) ; } return completeWithRemoteCommand ( cache , rpcManager , state ) ; } }
Completes the transaction for a specific cache .