@ Override public void cleanupLeaverTransactions ( List < Address > members ) { Iterator < RemoteTransaction > it = getRemoteTransactions ( ) . iterator ( ) ; while ( it . hasNext ( ) ) { RecoveryAwareRemoteTransaction recTx = ( RecoveryAwareRemoteTransaction ) it . next ( ) ; recTx . computeOrphan ( members ) ; if ( recTx . isInDoubt ( ) ) { recoveryManager . registerInDoubtTransaction ( recTx ) ; it . remove ( ) ; } } //this cleans up the transactions that are not yet prepared super . cleanupLeaverTransactions ( members ) ; }
First moves the prepared transactions originated on the leavers into the recovery cache and then cleans up the transactions that are not yet prepared .