Program: 86628
Project: 86628
Buggy source:
@Override public void loadAll(DataAccess typeTemplate,List<DataAccess> datasets,String[] fieldNames,Object[] fieldValues) throws DatabaseReadException {
  ResultSet rs=null;
  Connection conn=pool.getConnectionFromPool();
  List<HashMap<String,Object>> stuff=new ArrayList<HashMap<String,Object>>();
  try {
    rs=this.getResultSet(conn,typeTemplate,fieldNames,fieldValues,false);
    if (rs != null) {
      while (rs.next()) {
        HashMap<String,Object> dataSet=new HashMap<String,Object>();
        for (        Column column : typeTemplate.getTableLayout()) {
          if (column.isList()) {
            dataSet.put(column.columnName(),this.getList(column.dataType(),rs.getString(column.columnName())));
          }
 else           if (rs.getObject(column.columnName()) instanceof Boolean) {
            dataSet.put(column.columnName(),rs.getBoolean(column.columnName()));
          }
 else {
            dataSet.put(column.columnName(),rs.getObject(column.columnName()));
          }
        }
        stuff.add(dataSet);
      }
    }
  }
 catch (  DatabaseReadException dre) {
    Canary.logStacktrace(dre.getMessage(),dre);
  }
catch (  SQLException ex) {
    Canary.logStacktrace(ex.getMessage(),ex);
  }
catch (  DatabaseTableInconsistencyException dtie) {
    Canary.logStacktrace(dtie.getMessage(),dtie);
  }
 finally {
    try {
      PreparedStatement st=rs.getStatement() instanceof PreparedStatement ? (PreparedStatement)rs.getStatement() : null;
      this.closeRS(rs);
      this.closePS(st);
      pool.returnConnectionToPool(conn);
    }
 catch (    SQLException ex) {
      Canary.logStacktrace(ex.getMessage(),ex);
    }
  }
  try {
    for (    HashMap<String,Object> temp : stuff) {
      DataAccess newData=typeTemplate.getInstance();
      newData.load(temp);
      datasets.add(newData);
    }
  }
 catch (  DatabaseAccessException dae) {
    Canary.logStacktrace(dae.getMessage(),dae);
  }
}

Fixed version (ground truth):
@Override public void loadAll(DataAccess typeTemplate,List<DataAccess> datasets,String[] fieldNames,Object[] fieldValues) throws DatabaseReadException {
  ResultSet rs=null;
  Connection conn=pool.getConnectionFromPool();
  List<HashMap<String,Object>> stuff=new ArrayList<HashMap<String,Object>>();
  try {
    rs=this.getResultSet(conn,typeTemplate,fieldNames,fieldValues,false);
    if (rs != null) {
      while (rs.next()) {
        HashMap<String,Object> dataSet=new HashMap<String,Object>();
        for (        Column column : typeTemplate.getTableLayout()) {
          if (column.isList()) {
            dataSet.put(column.columnName(),this.getList(column.dataType(),rs.getString(column.columnName())));
          }
 else           if (rs.getObject(column.columnName()) instanceof Boolean) {
            dataSet.put(column.columnName(),rs.getBoolean(column.columnName()));
          }
 else {
            dataSet.put(column.columnName(),rs.getObject(column.columnName()));
          }
        }
        stuff.add(dataSet);
      }
    }
  }
 catch (  DatabaseReadException dre) {
    Canary.logStacktrace(dre.getMessage(),dre);
  }
catch (  SQLException ex) {
    Canary.logStacktrace(ex.getMessage(),ex);
  }
catch (  DatabaseTableInconsistencyException dtie) {
    Canary.logStacktrace(dtie.getMessage(),dtie);
  }
 finally {
    try {
      PreparedStatement st=rs != null && rs.getStatement() instanceof PreparedStatement ? (PreparedStatement)rs.getStatement() : null;
      this.closeRS(rs);
      this.closePS(st);
      pool.returnConnectionToPool(conn);
    }
 catch (    SQLException ex) {
      Canary.logStacktrace(ex.getMessage(),ex);
    }
  }
  try {
    for (    HashMap<String,Object> temp : stuff) {
      DataAccess newData=typeTemplate.getInstance();
      newData.load(temp);
      datasets.add(newData);
    }
  }
 catch (  DatabaseAccessException dae) {
    Canary.logStacktrace(dae.getMessage(),dae);
  }
}