compensableLogger.updateTransaction(this.getTransactionArchive());
boolean nativeSuccess = this.fireNativeParticipantRecoveryConfirm();
boolean remoteSuccess = this.fireRemoteParticipantRecoveryConfirm();
if (nativeSuccess && remoteSuccess) {
this.transactionStatus = Status.STATUS_COMMITTED;
<BUG>compensableLogger.deleteTransaction(this.getTransactionArchive());
} else {</BUG>
throw new SystemException();
}
}

compensableLogger.updateTransaction(this.getTransactionArchive());
boolean nativeSuccess = this.fireNativeParticipantRecoveryConfirm();
boolean remoteSuccess = this.fireRemoteParticipantRecoveryConfirm();
if (nativeSuccess && remoteSuccess) {
this.transactionStatus = Status.STATUS_COMMITTED;
compensableLogger.deleteTransaction(this.getTransactionArchive());
logger.info("{}| compensable transaction recovery committed!",
ByteUtils.byteArrayToString(transactionContext.getXid().getGlobalTransactionId()));
} else {
throw new SystemException();
}
}
