if (xid == null) { throw new FBResourceTransactionException( "No local transaction active: can't rollback", FBResourceTransactionException.SQL_STATE_INVALID_TRANSACTION_STATE); }
if (xid == null) return;
    public void internalRollback() throws ResourceException {         if (xid == null) {             throw new FBResourceTransactionException(                     "No local transaction active: can't rollback",                     FBResourceTransactionException.SQL_STATE_INVALID_TRANSACTION_STATE);         }                  synchronized(mc) {             try {                 mc.internalEnd(xid, XAResource.TMSUCCESS);  //??? on flags --FBManagedConnection is its own XAResource                 mc.internalRollback(xid);             } catch(XAException ex) {                 throw new FBResourceTransactionException(ex.getMessage());             } catch(GDSException ex) {                 throw new FBResourceTransactionException(ex.getMessage(), ex);             }             finally {                 xid = null;             }             if (rollbackEvent != null) {                 mc.notify(                         FBManagedConnection.localTransactionRolledbackNotifier,                          rollbackEvent);             }         }     }