}
}
private void complete(final InvocationContext ic) {
Transaction transaction = getTransactionContext().getCurrentTransaction();
TransactionInfo transactionInfo = getTransactionInfo();
transactionInfo.decrementCounter();
if (transactionInfo.getCounter() == 0 && transaction.isActive()) {
if (transactionInfo.isOwner()) {
if (transaction.isMarkedRollback()) {
transaction.rollback();
transactionInfo.clear();
getLogger().info(getBundle().getString("transaction-rolledback"));
} else {
transaction.commit();
transactionInfo.clear();
getLogger().info(getBundle().getString("transaction-commited"));
}
}
} else if (transactionInfo.getCounter() == 0 && !transaction.isActive()) {
getLogger().info(getBundle().getString("transaction-already-finalized"));
}
}