@ Override public void rollback ( ) throws IllegalStateException , SystemException { if ( trace ) { log . tracef ( "Transaction.rollback() invoked in transaction with Xid=%s" , xid ) ; } if ( isDone ( ) ) { throw new IllegalStateException ( "Transaction is done. Cannot rollback transaction" ) ; } try { status = Status . STATUS_MARKED_ROLLBACK ; endResources ( ) ; runCommit ( false ) ; } catch ( HeuristicMixedException | HeuristicRollbackException e ) { log . errorRollingBack ( e ) ; SystemException systemException = new SystemException ( "Unable to rollback transaction" ) ; systemException . initCause ( e ) ; throw systemException ; } catch ( RollbackException e ) { //ignored if ( trace ) { log . trace ( "RollbackException thrown while rolling back" , e ) ; } } }
Rolls back this transaction .