if ( recoverableWhileActive_ ) {
checkSiblings_ = img.checkSiblings_;
localSiblingCount_ = img.localSiblingCount_;
}
fsm_ = new FSMImp ( this, new TransactionTransitionTable (), img.state_ );
fsm_.addFSMPreEnterListener ( this, TxState.TERMINATED );
fsm_.addFSMPreEnterListener ( this, TxState.HEUR_COMMITTED );
fsm_.addFSMPreEnterListener ( this, TxState.HEUR_ABORTED );
fsm_.addFSMPreEnterListener ( this, TxState.HEUR_MIXED );
fsm_.addFSMPreEnterListener ( this, TxState.HEUR_HAZARD );