assertTrue("Should find in-limbo tx.", foundInLimboTx);
    public void testReconnectTransaction() throws Exception {                AbstractIscDbHandle dbHandle1 = (AbstractIscDbHandle)gds.createIscDbHandle();        gds.iscAttachDatabase(getdbpath(DB_NAME), dbHandle1, dpb);                AbstractIscTrHandle trHandle1 = (AbstractIscTrHandle)gds.createIscTrHandle();        gds.iscStartTransaction(trHandle1, dbHandle1, tpb.getTransactionParameterBuffer());                gds.iscPrepareTransaction2(trHandle1, message);                //gds.isc_commit_transaction(trHandle1);                //gds.isc_detach_database(dbHandle1);        ((isc_db_handle_impl)dbHandle1).out.close();                AbstractIscDbHandle dbHandle2 = (AbstractIscDbHandle)gds.createIscDbHandle();        gds.iscAttachDatabase(getdbpath(DB_NAME), dbHandle2, dpb);                AbstractIscTrHandle trHandle2 = (AbstractIscTrHandle)gds.createIscTrHandle();        gds.iscStartTransaction(trHandle2, dbHandle2, tpb.getTransactionParameterBuffer());                AbstractIscStmtHandle stmtHandle2 = (AbstractIscStmtHandle)gds.createIscStmtHandle();        gds.iscDsqlAllocateStatement(dbHandle2, stmtHandle2);                GDSHelper gdsHelper2 = new GDSHelper(gds, dpb, dbHandle2);        gdsHelper2.setCurrentTrHandle(trHandle2);                gdsHelper2.prepareStatement(stmtHandle2, RECOVERY_QUERY, false);        gdsHelper2.executeStatement(stmtHandle2, false);        gdsHelper2.fetch(stmtHandle2, 10);                DataProvider dataProvider0 = new DataProvider(stmtHandle2, 0);        DataProvider dataProvider1 = new DataProvider(stmtHandle2, 1);                FBField field0 = FBField.createField(stmtHandle2.getOutSqlda().sqlvar[0], dataProvider0, gdsHelper2, false);        FBField field1 = FBField.createField(stmtHandle2.getOutSqlda().sqlvar[1], dataProvider1, gdsHelper2, false);                field0.setConnection(gdsHelper2);        field1.setConnection(gdsHelper2);                int row = 0;        while(row < stmtHandle2.getRows().length) {                    dataProvider0.setRow(row);            dataProvider1.setRow(row);                        long inLimboTxId = field0.getLong();            byte[] inLimboMessage = field1.getBytes();                    if (Arrays.equals(message, inLimboMessage)) {                IscTrHandle inLimboTrHandle = gds.createIscTrHandle();                gds.iscReconnectTransaction(inLimboTrHandle, dbHandle2, inLimboTxId);                assertEquals(                        inLimboTxId,                        gdsHelper2.getTransactionId(inLimboTrHandle));                gds.iscRollbackTransaction(inLimboTrHandle);                break;            }                        row++;        }                gdsHelper2.closeStatement(stmtHandle2, true);                gds.iscCommitTransaction(trHandle2);        gds.iscDetachDatabase(dbHandle2);    }