return TransactionManager.STATUS_NO_TRANSACTION;
}
logger.debug( "Current TX name (According to TransactionSynchronizationManager) : " + TransactionSynchronizationManager.getCurrentTransactionName() );
if ( TransactionSynchronizationManager.isActualTransactionActive() ) {
TransactionStatus transaction = null;
try {
if ( currentTransaction == null ) {
transaction = ptm.getTransaction( td );
if ( transaction.isNewTransaction() ) {
return TransactionManager.STATUS_COMMITTED;
}
} else {
transaction = currentTransaction;
}
logger.debug( "Current TX: " + transaction );
// If SynchronizationManager thinks it has an active transaction but
// our transaction is a new one
// then we must be in the middle of committing
if ( transaction.isCompleted() ) {
if ( transaction.isRollbackOnly() ) {
return TransactionManager.STATUS_ROLLEDBACK;
}
return TransactionManager.STATUS_COMMITTED;
} else {
if ( transaction.isRollbackOnly() ) {
return TransactionManager.STATUS_ROLLEDBACK;
}
return TransactionManager.STATUS_ACTIVE;
}
} finally {