super(annotation, next, test);
}
public void evaluate() throws Throwable {
final TransactionManager transactionManager = SystemInstance.get().getComponent(TransactionManager.class);
final JtaTransactionPolicyFactory factory = new JtaTransactionPolicyFactory(transactionManager);
final TransactionType transactionType = TransactionType.get(annotation.value());
// This creates *and* begins the transaction
final TransactionPolicy policy = factory.createTransactionPolicy(transactionType);
try {
next.evaluate();
} catch (final Throwable t) {
if (!isApplicationException(t)) {
policy.setRollbackOnly();