Program: 19861
Project: 19861
Buggy source:
private static GameInfo scrapeGameInfo(String rfgid) throws Exception {
  URL url=new URL(Constants.FUNCTION_GAME_INFO + "String_Node_Str" + Constants.PARAM_RFGID+ "String_Node_Str"+ rfgid);
  Log.i(TAG,"String_Node_Str" + url.toString());
  Document document=Jsoup.parse(url,30000);
  Log.i(TAG,"String_Node_Str" + document.baseUri());
  Elements tables=document.select("String_Node_Str");
  if (tables.size() == 0) {
    Log.w(TAG,"String_Node_Str" + rfgid + "String_Node_Str");
    return HardwareInfoScraper.scrapeHardwareInfo(rfgid);
  }
  Elements tableRows=tables.get(0).select("String_Node_Str");
  Map<String,String> properties=new HashMap<String,String>();
  for (int i=0; i < tableRows.size(); i++) {
    Elements tableData=tableRows.get(i).select("String_Node_Str");
    String field=tableData.get(0).text().trim().replace("String_Node_Str","String_Node_Str");
    String value=tableData.get(1).text().trim();
    if (field.length() == 0)     continue;
    if (GameInfo.REGION.equals(field)) {
      StringBuilder sb=new StringBuilder();
      Elements regions=tableData.select("String_Node_Str");
      for (int j=0; j < regions.size(); j++) {
        sb.append(regions.get(j).attr("String_Node_Str"));
        if (j < regions.size())         sb.append(',');
      }
      properties.put(field,sb.toString());
    }
 else     if (value.length() > 0) {
      properties.put(field,value);
    }
  }
  GameInfo gameInfo=new GameInfo(properties);
  gameInfo.setTitle(document.select("String_Node_Str").get(0).text());
  tableRows=tables.get(tables.size() - 2).select("String_Node_Str");
  ArrayList<String> names=new ArrayList<String>();
  ArrayList<String> credits=new ArrayList<String>();
  try {
    for (int i=0; i < tableRows.size(); i++) {
      Elements tableData=tableRows.get(i).select("String_Node_Str");
      names.add(tableData.get(0).text());
      credits.add(tableData.get(1).text());
    }
  }
 catch (  Exception e) {
    names.add("String_Node_Str");
    credits.add("String_Node_Str");
    Log.e(TAG,"String_Node_Str");
  }
  gameInfo.setNameList(names);
  gameInfo.setCreditList(credits);
  tableRows=document.select("String_Node_Str");
  ArrayList<String> imageTypes=new ArrayList<String>();
  if (tableRows.size() == 5) {
    if (tableRows.get(0).select("String_Node_Str").size() > 0)     imageTypes.add("String_Node_Str");
    if (tableRows.get(1).select("String_Node_Str").size() > 0)     imageTypes.add("String_Node_Str");
    if (tableRows.get(3).select("String_Node_Str").size() > 0)     imageTypes.add("String_Node_Str");
    if (tableRows.get(4).select("String_Node_Str").size() > 0)     imageTypes.add("String_Node_Str");
    if (tableRows.get(2).select("String_Node_Str").size() > 0)     imageTypes.add("String_Node_Str");
  }
  gameInfo.setImageTypes(imageTypes);
  return gameInfo;
}

Fixed version (ground truth):
private static GameInfo scrapeGameInfo(String rfgid) throws Exception {
  URL url=new URL(Constants.FUNCTION_GAME_INFO + "String_Node_Str" + Constants.PARAM_RFGID+ "String_Node_Str"+ rfgid);
  Log.i(TAG,"String_Node_Str" + url.toString());
  Document document=Jsoup.parse(url,30000);
  Log.i(TAG,"String_Node_Str" + document.baseUri());
  Elements tables=document.select("String_Node_Str");
  if (tables.size() == 0) {
    Log.w(TAG,"String_Node_Str" + rfgid + "String_Node_Str");
    return HardwareInfoScraper.scrapeHardwareInfo(rfgid);
  }
  Elements tableRows=tables.get(0).select("String_Node_Str");
  Map<String,String> properties=new HashMap<String,String>();
  for (int i=0; i < tableRows.size(); i++) {
    Elements tableData=tableRows.get(i).select("String_Node_Str");
    if (tableData.size() < 2)     continue;
    String field=tableData.get(0).text().trim().replace("String_Node_Str","String_Node_Str");
    String value=tableData.get(1).text().trim();
    if (field.length() == 0)     continue;
    if (GameInfo.REGION.equals(field)) {
      StringBuilder sb=new StringBuilder();
      Elements regions=tableData.select("String_Node_Str");
      for (int j=0; j < regions.size(); j++) {
        sb.append(regions.get(j).attr("String_Node_Str"));
        if (j < regions.size())         sb.append(',');
      }
      properties.put(field,sb.toString());
    }
 else     if (value.length() > 0) {
      properties.put(field,value);
    }
  }
  GameInfo gameInfo=new GameInfo(properties);
  gameInfo.setTitle(document.select("String_Node_Str").get(0).text());
  tableRows=tables.get(tables.size() - 2).select("String_Node_Str");
  ArrayList<String> names=new ArrayList<String>();
  ArrayList<String> credits=new ArrayList<String>();
  try {
    for (int i=0; i < tableRows.size(); i++) {
      Elements tableData=tableRows.get(i).select("String_Node_Str");
      names.add(tableData.get(0).text());
      credits.add(tableData.get(1).text());
    }
  }
 catch (  Exception e) {
    names.add("String_Node_Str");
    credits.add("String_Node_Str");
    Log.e(TAG,"String_Node_Str");
  }
  gameInfo.setNameList(names);
  gameInfo.setCreditList(credits);
  tableRows=document.select("String_Node_Str");
  ArrayList<String> imageTypes=new ArrayList<String>();
  if (tableRows.size() == 5) {
    if (tableRows.get(0).select("String_Node_Str").size() > 0)     imageTypes.add("String_Node_Str");
    if (tableRows.get(1).select("String_Node_Str").size() > 0)     imageTypes.add("String_Node_Str");
    if (tableRows.get(3).select("String_Node_Str").size() > 0)     imageTypes.add("String_Node_Str");
    if (tableRows.get(4).select("String_Node_Str").size() > 0)     imageTypes.add("String_Node_Str");
    if (tableRows.get(2).select("String_Node_Str").size() > 0)     imageTypes.add("String_Node_Str");
  }
  gameInfo.setImageTypes(imageTypes);
  return gameInfo;
}