Program: 43083
Project: 43083
Buggy source:
/** 
 * Run the search query
 */
@Override public void run(){
  Util.debug("String_Node_Str");
  String sql="String_Node_Str" + Config.DbHawkEyeTable + "String_Node_Str";
  List<String> args=new ArrayList<String>();
  Util.debug("String_Node_Str");
  if (parser.players != null) {
    List<Integer> pids=new ArrayList<Integer>();
    List<Integer> npids=new ArrayList<Integer>();
    for (    String player : parser.players) {
      for (      Map.Entry<String,Integer> entry : DataManager.dbPlayers.entrySet()) {
        if (entry.getKey().toLowerCase().contains(player.toLowerCase()))         pids.add(entry.getValue());
 else         if (entry.getKey().toLowerCase().contains(player.replace("String_Node_Str","String_Node_Str").toLowerCase()))         npids.add(entry.getValue());
      }
    }
    if (pids.size() > 0)     args.add("String_Node_Str" + Util.join(pids,"String_Node_Str") + "String_Node_Str");
    if (npids.size() > 0)     args.add("String_Node_Str" + Util.join(npids,"String_Node_Str") + "String_Node_Str");
    if (npids.size() + pids.size() < 1) {
      callBack.error(SearchError.NO_PLAYERS,"String_Node_Str");
      return;
    }
  }
  Util.debug("String_Node_Str");
  if (parser.worlds != null) {
    List<Integer> wids=new ArrayList<Integer>();
    List<Integer> nwids=new ArrayList<Integer>();
    for (    String world : parser.worlds) {
      for (      Map.Entry<String,Integer> entry : DataManager.dbWorlds.entrySet()) {
        if (entry.getKey().toLowerCase().contains(world.toLowerCase()))         wids.add(entry.getValue());
 else         if (entry.getKey().toLowerCase().contains(world.replace("String_Node_Str","String_Node_Str").toLowerCase()))         nwids.add(entry.getValue());
      }
    }
    if (wids.size() > 0)     args.add("String_Node_Str" + Util.join(wids,"String_Node_Str") + "String_Node_Str");
    if (nwids.size() > 0)     args.add("String_Node_Str" + Util.join(nwids,"String_Node_Str") + "String_Node_Str");
    if (nwids.size() + wids.size() < 1) {
      callBack.error(SearchError.NO_WORLDS,"String_Node_Str");
      return;
    }
  }
  Util.debug("String_Node_Str");
  if (parser.actions != null && parser.actions.size() > 0) {
    List<Integer> acs=new ArrayList<Integer>();
    for (    DataType act : parser.actions)     acs.add(act.getId());
    args.add("String_Node_Str" + Util.join(acs,"String_Node_Str") + "String_Node_Str");
  }
  Util.debug("String_Node_Str");
  if (parser.dateFrom != null)   args.add("String_Node_Str" + parser.dateFrom + "String_Node_Str");
  if (parser.dateTo != null)   args.add("String_Node_Str" + parser.dateTo + "String_Node_Str");
  Util.debug("String_Node_Str");
  if (parser.minLoc != null) {
    args.add("String_Node_Str" + parser.minLoc.getX() + "String_Node_Str"+ parser.maxLoc.getX()+ "String_Node_Str");
    args.add("String_Node_Str" + parser.minLoc.getY() + "String_Node_Str"+ parser.maxLoc.getY()+ "String_Node_Str");
    args.add("String_Node_Str" + parser.minLoc.getZ() + "String_Node_Str"+ parser.maxLoc.getZ()+ "String_Node_Str");
  }
 else   if (parser.loc != null) {
    args.add("String_Node_Str" + parser.loc.getX());
    args.add("String_Node_Str" + parser.loc.getY());
    args.add("String_Node_Str" + parser.loc.getZ());
  }
  Util.debug("String_Node_Str");
  if (parser.filters != null) {
    for (int i=0; i < parser.filters.length; i++)     parser.filters[i]="String_Node_Str" + parser.filters[i] + "String_Node_Str";
    args.add("String_Node_Str" + Util.join(Arrays.asList(parser.filters),"String_Node_Str"));
  }
  sql+=Util.join(args,"String_Node_Str");
  Util.debug("String_Node_Str");
  sql+="String_Node_Str";
  Util.debug("String_Node_Str");
  if (Config.MaxLines > 0)   sql+="String_Node_Str" + Config.MaxLines;
  Util.debug("String_Node_Str" + sql);
  ResultSet res;
  List<DataEntry> results=new ArrayList<DataEntry>();
  JDCConnection conn=DataManager.getConnection();
  Statement stmnt=null;
  try {
    stmnt=conn.createStatement();
    res=stmnt.executeQuery(sql);
    Util.debug("String_Node_Str");
    while (res.next())     results.add(DataManager.createEntryFromRes(res));
    if (dir == SearchDir.ASC)     Collections.reverse(results);
  }
 catch (  Exception ex) {
    Util.severe("String_Node_Str" + ex);
    ex.printStackTrace();
    callBack.error(SearchError.MYSQL_ERROR,"String_Node_Str" + ex);
    return;
  }
 finally {
    try {
      if (stmnt != null)       stmnt.close();
      conn.close();
    }
 catch (    SQLException ex) {
      Util.severe("String_Node_Str" + ex);
      callBack.error(SearchError.MYSQL_ERROR,"String_Node_Str" + ex);
    }
  }
  Util.debug(results.size() + "String_Node_Str");
  callBack.results=results;
  callBack.execute();
  Util.debug("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Run the search query
 */
@Override public void run(){
  Util.debug("String_Node_Str");
  String sql="String_Node_Str" + Config.DbHawkEyeTable + "String_Node_Str";
  List<String> args=new ArrayList<String>();
  Util.debug("String_Node_Str");
  if (parser.players.size() >= 1) {
    List<Integer> pids=new ArrayList<Integer>();
    List<Integer> npids=new ArrayList<Integer>();
    for (    String player : parser.players) {
      for (      Map.Entry<String,Integer> entry : DataManager.dbPlayers.entrySet()) {
        if (entry.getKey().toLowerCase().contains(player.toLowerCase()))         pids.add(entry.getValue());
 else         if (entry.getKey().toLowerCase().contains(player.replace("String_Node_Str","String_Node_Str").toLowerCase()))         npids.add(entry.getValue());
      }
    }
    if (pids.size() > 0)     args.add("String_Node_Str" + Util.join(pids,"String_Node_Str") + "String_Node_Str");
    if (npids.size() > 0)     args.add("String_Node_Str" + Util.join(npids,"String_Node_Str") + "String_Node_Str");
    if (npids.size() + pids.size() < 1) {
      callBack.error(SearchError.NO_PLAYERS,"String_Node_Str");
      return;
    }
  }
  Util.debug("String_Node_Str");
  if (parser.worlds != null) {
    List<Integer> wids=new ArrayList<Integer>();
    List<Integer> nwids=new ArrayList<Integer>();
    for (    String world : parser.worlds) {
      for (      Map.Entry<String,Integer> entry : DataManager.dbWorlds.entrySet()) {
        if (entry.getKey().toLowerCase().contains(world.toLowerCase()))         wids.add(entry.getValue());
 else         if (entry.getKey().toLowerCase().contains(world.replace("String_Node_Str","String_Node_Str").toLowerCase()))         nwids.add(entry.getValue());
      }
    }
    if (wids.size() > 0)     args.add("String_Node_Str" + Util.join(wids,"String_Node_Str") + "String_Node_Str");
    if (nwids.size() > 0)     args.add("String_Node_Str" + Util.join(nwids,"String_Node_Str") + "String_Node_Str");
    if (nwids.size() + wids.size() < 1) {
      callBack.error(SearchError.NO_WORLDS,"String_Node_Str");
      return;
    }
  }
  Util.debug("String_Node_Str");
  if (parser.actions != null && parser.actions.size() > 0) {
    List<Integer> acs=new ArrayList<Integer>();
    for (    DataType act : parser.actions)     acs.add(act.getId());
    args.add("String_Node_Str" + Util.join(acs,"String_Node_Str") + "String_Node_Str");
  }
  Util.debug("String_Node_Str");
  if (parser.dateFrom != null)   args.add("String_Node_Str" + parser.dateFrom + "String_Node_Str");
  if (parser.dateTo != null)   args.add("String_Node_Str" + parser.dateTo + "String_Node_Str");
  Util.debug("String_Node_Str");
  if (parser.minLoc != null) {
    args.add("String_Node_Str" + parser.minLoc.getX() + "String_Node_Str"+ parser.maxLoc.getX()+ "String_Node_Str");
    args.add("String_Node_Str" + parser.minLoc.getY() + "String_Node_Str"+ parser.maxLoc.getY()+ "String_Node_Str");
    args.add("String_Node_Str" + parser.minLoc.getZ() + "String_Node_Str"+ parser.maxLoc.getZ()+ "String_Node_Str");
  }
 else   if (parser.loc != null) {
    args.add("String_Node_Str" + parser.loc.getX());
    args.add("String_Node_Str" + parser.loc.getY());
    args.add("String_Node_Str" + parser.loc.getZ());
  }
  Util.debug("String_Node_Str");
  if (parser.filters != null) {
    for (int i=0; i < parser.filters.length; i++)     parser.filters[i]="String_Node_Str" + parser.filters[i] + "String_Node_Str";
    args.add("String_Node_Str" + Util.join(Arrays.asList(parser.filters),"String_Node_Str"));
  }
  sql+=Util.join(args,"String_Node_Str");
  Util.debug("String_Node_Str");
  sql+="String_Node_Str";
  Util.debug("String_Node_Str");
  if (Config.MaxLines > 0)   sql+="String_Node_Str" + Config.MaxLines;
  Util.debug("String_Node_Str" + sql);
  ResultSet res;
  List<DataEntry> results=new ArrayList<DataEntry>();
  JDCConnection conn=DataManager.getConnection();
  Statement stmnt=null;
  try {
    stmnt=conn.createStatement();
    res=stmnt.executeQuery(sql);
    Util.debug("String_Node_Str");
    while (res.next())     results.add(DataManager.createEntryFromRes(res));
    if (dir == SearchDir.ASC)     Collections.reverse(results);
  }
 catch (  Exception ex) {
    Util.severe("String_Node_Str" + ex);
    ex.printStackTrace();
    callBack.error(SearchError.MYSQL_ERROR,"String_Node_Str" + ex);
    return;
  }
 finally {
    try {
      if (stmnt != null)       stmnt.close();
      conn.close();
    }
 catch (    SQLException ex) {
      Util.severe("String_Node_Str" + ex);
      callBack.error(SearchError.MYSQL_ERROR,"String_Node_Str" + ex);
    }
  }
  Util.debug(results.size() + "String_Node_Str");
  callBack.results=results;
  callBack.execute();
  Util.debug("String_Node_Str");
}