boolean isTransactionRolledBack ( ) { final String methodName = "isTransactionRolledBack" ; if ( TraceComponent . isAnyTracingEnabled ( ) && TRACE . isEntryEnabled ( ) ) { SibTr . entry ( this , TRACE , methodName ) ; } // Default to true indicating a rollback boolean isRolledBack = true ; Boolean rolledBack = null ; if ( _lastXidUsed != null ) { // Get hold of the state of the last transaction used by this xa resource // instance. synchronized ( _transactionStates ) { rolledBack = ( Boolean ) _transactionStates . remove ( _lastXidUsed ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && TRACE . isDebugEnabled ( ) ) { StringBuffer sb = new StringBuffer ( "After removing the xid " ) ; sb . append ( _lastXidUsed ) ; sb . append ( " the hashtable of transactionStates now contains " ) ; sb . append ( _transactionStates . size ( ) ) ; sb . append ( " entries" ) ; SibTr . debug ( this , TRACE , sb . toString ( ) ) ; } } } else { if ( TraceComponent . isAnyTracingEnabled ( ) && TRACE . isDebugEnabled ( ) ) { SibTr . debug ( this , TRACE , "WARNING! No last Xid set" ) ; } } if ( rolledBack != null ) { isRolledBack = rolledBack . booleanValue ( ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && TRACE . isEntryEnabled ( ) ) { SibTr . exit ( this , TRACE , methodName , Boolean . valueOf ( isRolledBack ) ) ; } return isRolledBack ; }
Checks if the transaction was rolled back or not . If for some reason we could not obtain the transaction state then we return true indicating a rollback .