throw new FBXAException("Rollback called with current xid",
throw new FBXAException("Rollback called with non-ended xid",
    void internalRollback(Xid xid) throws XAException, GDSException {        if (log != null) log.trace("rollback called: " + xid);        AbstractIscTrHandle committingTr = (AbstractIscTrHandle)xidMap.get(xid); //mcf.getTrHandleForXid(id);        if (committingTr == null) {            if (log != null)                log.warn("rollback called with unknown transaction: " + xid);            return;        }        if (committingTr == gdsHelper.getCurrentTrHandle())            throw new FBXAException("Rollback called with current xid",                    XAException.XAER_PROTO);        try {            committingTr.forgetResultSets();            try {                gdsHelper.getInternalAPIHandler().iscRollbackTransaction(committingTr);            } finally {                xidMap.remove(xid);            }        } catch (GDSException ge) {            if (log != null) log.debug("Exception in rollback", ge);            ge.setXAErrorCode(XAException.XAER_RMERR);            throw ge;        }    }