throw new XAException("can't perform query to fetch xids" + re);
log.info("can't perform query to fetch xids", re); throw new XAException(XAException.XAER_RMFAIL);
    public Xid[] recover(int flag) throws javax.transaction.xa.XAException     {        ArrayList xids = new ArrayList();        Connection conn = null;        try         {            conn = (Connection)getConnection(null, null);                   try             {                Statement statement = conn.createStatement();                ResultSet recoveredRS = statement.executeQuery(RECOVERY_QUERY);                while (recoveredRS.next())                 {                    try                     {                        long transactionID = recoveredRS.getLong(1);                        InputStream xidIn = recoveredRS.getBinaryStream(2);                        FBXid xid = new FBXid(xidIn);                        xids.add(xid);                        //what do we do with the Firebird transactionID?                    }                     catch (SQLException sqle)                     { } // end of try-catch                    catch (ResourceException sqle)                     { } // end of try-catch                } // end of while ()                return (Xid[])xids.toArray(new Xid[xids.size()]);            }            finally             {                conn.close();            } // end of finally        }         catch (SQLException sqle)         {            throw new XAException("can't perform query to fetch xids" + sqle);        } // end of try-catch        catch (ResourceException re)         {            throw new XAException("can't perform query to fetch xids" + re);        } // end of try-catch     }