in jpa-support/src/main/java/org/apache/aries/jpa/support/xa/impl/TransactionAttribute.java [113:137]
public TransactionToken begin(TransactionManager man) throws SystemException, NotSupportedException,
InvalidTransactionException
{
TransactionToken tranToken;
if (man.getStatus() == Status.STATUS_ACTIVE) {
tranToken = new TransactionToken(null, man.suspend(), REQUIRESNEW);
} else {
tranToken = new TransactionToken(null, null, REQUIRESNEW);
}
try {
man.begin();
} catch (SystemException e) {
man.resume(tranToken.getSuspendedTransaction());
throw e;
} catch (NotSupportedException e) {
man.resume(tranToken.getSuspendedTransaction());
throw e;
}
tranToken.setActiveTransaction(man.getTransaction());
tranToken.setCompletionAllowed(true);
return tranToken;
}