Учитывая
@Transactional(
value = Transactional.TxType.REQUIRES_NEW,
dontRollbackOn = {RuntimeException.class},
// IllegalStateException derived from RuntimeException therefore not rolling back.
rollbackOn = {IllegalStateException.class,IllegalAccessError.class})
в качестве Транзакционной аннотации, я ожидаю, что транзакция будет откатываться, если код внутри транзакции выдает ошибку IllegalAccessError. По крайней мере, в случае с Арджуной это не так. В Javadoc Transactional упоминаются только исключения, но не ошибки. На мой взгляд, обработкой по умолчанию в случае ошибок всегда должен быть откат, по крайней мере, если ошибка явно добавлена в rollbackOn. У кого-нибудь есть более конкретная информация, по этому поводу я не нашел ничего конкретного в официальной спецификации. JTA 1,3