in tx-control-services/tx-control-service-xa/src/main/java/org/apache/aries/tx/control/service/xa/impl/TransactionContextImpl.java [411:425]
public int prepare(Xid xid) throws XAException {
if(!finished.compareAndSet(false, true)) {
switch(getTransactionStatus()) {
case COMMITTING:
return XA_OK;
case ROLLING_BACK:
throw new XAException(XA_RBOTHER);
default:
throw new XAException(XA_RBPROTO);
}
}
completionState.set(COMMITTING);
doCommit();
return XA_OK;
}