this.time = time;
    AcceptanceTestResult(AcceptanceTest test, ResultSet rs, Connection con) {        this.test = test;        try {            results = copyResults(rs, test.getMaxResults().intValue());            ResultSetMetaData metadata = rs.getMetaData();            columnLabels = new ArrayList();            for (int i = 1; i <= metadata.getColumnCount(); i++) {                columnLabels.add(metadata.getColumnLabel(i));            }                        DatabaseMetaData dbMetadata = con.getMetaData();            ResultSet trackerTableResults = dbMetadata.getTables(null, null, "tracker", null);                        if (trackerTableResults.next()) {                // we have a tracker table                            for (int i = 1; i <= metadata.getColumnCount(); i++) {                    if (metadata.getColumnType(i) == Types.INTEGER                        && metadata.getColumnLabel(i).equals("id")) {                        // look up each ID in the tracker table and save the results                        Iterator rowIter = results.iterator();                        while (rowIter.hasNext()) {                            List row = (List) rowIter.next();                            Integer id = (Integer) row.get(i - 1);                            List trackerRows = getTrackerRows(id, con);                                                    trackerMap.put(id, trackerRows);                                                    }                    }                }            }        } catch (SQLException e) {            sqlException = e;        }    }