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);  } catch (SQLException sqle) { } catch (ResourceException sqle) { }  } return (Xid[])xids.toArray(new Xid[xids.size()]); } finally { conn.close(); } } catch (SQLException sqle) { throw new XAException("can't perform query to fetch xids" + sqle); } catch (ResourceException re) { throw new XAException("can't perform query to fetch xids" + re); } }
} return (Xid[])xids.toArray(new Xid[xids.size()]); } finally { conn.close(); } } catch (SQLException sqle) { throw new XAException("can't perform query to fetch xids" + sqle); } catch (ResourceException re) { throw new XAException("can't perform query to fetch xids" + re); } }
	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	 }