if (!transaction.isMarkedRollback()) {
boolean rollback = false;
ApplicationException annotation = cause.getClass().getAnnotation(ApplicationException.class);
if (annotation == null || annotation.rollback()) {
rollback = true;
}
if (rollback) {
transaction.setRollbackOnly();