transaction.rollback();
if (transactionManager.getTransaction() != transaction) { throw new IllegalStateException("Transaction is not bound to the current thread"); } transactionManager.rollback();
    protected void doRollback(Exception e) throws ResourceException {        try {            transaction.rollback();            log.trace("Transaction rolled back");        }        catch (SystemException e1) {            log.warn("Caught exception while rolling back: " + e1, e1);        }        transaction = null;        throw new ResourceException(e);    }