throw new FBXAException("Not yet implemented");
long inLimboId = -1;  try {   AbstractIscTrHandle trHandle2 = (AbstractIscTrHandle)gds.createIscTrHandle(); gds.iscStartTransaction(trHandle2, gdsHelper.getCurrentDbHandle(), tpb.getTransactionParameterBuffer());  AbstractIscStmtHandle stmtHandle2 = (AbstractIscStmtHandle)gds.createIscStmtHandle(); gds.iscDsqlAllocateStatement(gdsHelper.getCurrentDbHandle(), stmtHandle2);  GDSHelper gdsHelper2 = new GDSHelper(gds, gdsHelper.getDatabaseParameterBuffer(), (AbstractIscDbHandle) gdsHelper.getCurrentDbHandle(), null); gdsHelper2.setCurrentTrHandle(trHandle2);  gdsHelper2.prepareStatement(stmtHandle2, FORGET_FIND_QUERY, false); gdsHelper2.executeStatement(stmtHandle2, false); gdsHelper2.fetch(stmtHandle2, 10);  DataProvider dataProvider0 = new DataProvider(stmtHandle2, 0); DataProvider dataProvider1 = new DataProvider(stmtHandle2, 1); DataProvider dataProvider2 = new DataProvider(stmtHandle2, 2);  FBField field0 = FBField.createField(stmtHandle2.getOutSqlda().sqlvar[0], dataProvider0, gdsHelper2, false); FBField field1 = FBField.createField(stmtHandle2.getOutSqlda().sqlvar[1], dataProvider1, gdsHelper2, false); FBField field2 = FBField.createField(stmtHandle2.getOutSqlda().sqlvar[2], dataProvider2, gdsHelper2, false);  field0.setConnection(gdsHelper2); field1.setConnection(gdsHelper2); field2.setConnection(gdsHelper2);  int row = 0; while(row < stmtHandle2.getRows().length) {  if (stmtHandle2.getRows()[row] == null) { row++; continue; }  dataProvider0.setRow(row); dataProvider1.setRow(row); dataProvider2.setRow(row);  long inLimboTxId = field0.getLong(); byte[] inLimboMessage = field1.getBytes(); int xaState = field2.getInt();  try { FBXid xid = new FBXid(new ByteArrayInputStream(inLimboMessage), inLimboTxId, xaState);  boolean gtridEquals = Arrays.equals(xid.getGlobalTransactionId(), id.getGlobalTransactionId()); boolean bqualEquals = Arrays.equals(xid.getBranchQualifier(), id.getBranchQualifier());  if (gtridEquals && bqualEquals) { inLimboId = inLimboTxId; if (xaState == FBXid.STATE_INLIMBO) throw new FBXAException("Cannot forget the Xid of a transaction that is still in limbo", XAException.XAER_NOTA); break; } } catch(FBIncorrectXidException ex) { if (log != null) log.warn("incorrect XID format in RDB$TRANSACTIONS where RDB$TRANSACTION_ID=" + inLimboTxId, ex); }  row++; }  gdsHelper2.closeStatement(stmtHandle2, true); gds.iscCommitTransaction(trHandle2);  } catch (GDSException ex) { if (log != null) log.debug("can't perform query to fetch xids", ex); throw new FBXAException(XAException.XAER_RMFAIL, ex); } catch (SQLException ex) { if (log != null) log.debug("can't perform query to fetch xids", ex); throw new FBXAException(XAException.XAER_RMFAIL, ex); } catch (ResourceException ex) { if (log != null) log.debug("can't perform query to fetch xids", ex); throw new FBXAException(XAException.XAER_RMFAIL, ex); }   if (inLimboId == -1) throw new FBXAException("XID not found in limbo transactions list", XAException.XAER_NOTA);  try {   AbstractIscTrHandle trHandle2 = (AbstractIscTrHandle)gds.createIscTrHandle(); gds.iscStartTransaction(trHandle2, gdsHelper.getCurrentDbHandle(), tpb.getTransactionParameterBuffer());  AbstractIscStmtHandle stmtHandle2 = (AbstractIscStmtHandle)gds.createIscStmtHandle(); gds.iscDsqlAllocateStatement(gdsHelper.getCurrentDbHandle(), stmtHandle2);  stmtHandle2 = (AbstractIscStmtHandle)gds.createIscStmtHandle(); gds.iscDsqlAllocateStatement(gdsHelper.getCurrentDbHandle(), stmtHandle2);  GDSHelper gdsHelper2 = new GDSHelper(gds, gdsHelper.getDatabaseParameterBuffer(), (AbstractIscDbHandle) gdsHelper.getCurrentDbHandle(), null); gdsHelper2.setCurrentTrHandle(trHandle2);  gdsHelper2.prepareStatement(stmtHandle2, FORGET_DELETE_QUERY + inLimboId, false); gdsHelper2.executeStatement(stmtHandle2, false);  gdsHelper2.closeStatement(stmtHandle2, true); gds.iscCommitTransaction(trHandle2);  } catch (GDSException ex) { throw new FBXAException("can't perform query to fetch xids", XAException.XAER_RMFAIL, ex); } catch (SQLException ex) { throw new FBXAException("can't perform query to fetch xids", XAException.XAER_RMFAIL, ex); }
    public void forget(Xid id) throws javax.transaction.xa.XAException {        throw new FBXAException("Not yet implemented");    }