Program: 86317
Project: 86317
Buggy source:
private SearchRequestResult parse_search(String html,int page){
  List<SearchResult> results=new ArrayList<SearchResult>();
  Document doc=Jsoup.parse(html);
  Elements trList=doc.select("String_Node_Str");
  Elements elem=null;
  int rows_per_hit=2;
  try {
    int rows=m_data.getInt("String_Node_Str");
    rows_per_hit=rows;
  }
 catch (  JSONException e) {
  }
  int results_total;
  Pattern pattern=Pattern.compile("String_Node_Str");
  Matcher matcher=pattern.matcher(html);
  if (matcher.find()) {
    results_total=Integer.parseInt(matcher.group(1));
  }
 else {
    results_total=-1;
  }
  int numOfEntries=trList.size() / rows_per_hit;
  if (numOfEntries > numOfResultsPerPage)   numOfEntries=numOfResultsPerPage;
  for (int i=0; i < numOfEntries; i++) {
    Element tr=trList.get(i * rows_per_hit);
    SearchResult sr=new SearchResult();
    elem=tr.select("String_Node_Str");
    if (elem.size() > 0) {
      String hrefID=elem.get(0).attr("String_Node_Str");
      sr.setId(hrefID);
    }
 else {
      elem=tr.select("String_Node_Str");
      if (elem.size() > 0) {
        String nameID=elem.get(0).attr("String_Node_Str").trim();
        String hrefID="String_Node_Str" + m_opac_dir + "String_Node_Str"+ nameID+ "String_Node_Str";
        sr.setId(hrefID);
      }
    }
    try {
      elem=tr.select("String_Node_Str");
      if (elem.size() > 0) {
        setMediaTypeFromImageFilename(sr,elem.get(0).attr("String_Node_Str"));
      }
    }
 catch (    NumberFormatException e) {
    }
    String desc="String_Node_Str";
    try {
      JSONArray searchtable=m_data.getJSONArray("String_Node_Str");
      for (int j=0; j < searchtable.length(); j++) {
        int colNum=searchtable.getInt(j);
        if (j > 0)         desc=desc + "String_Node_Str";
        desc=desc + tr.child(colNum).html();
      }
    }
 catch (    Exception e) {
      e.printStackTrace();
    }
    desc=desc.replaceAll("String_Node_Str","String_Node_Str");
    sr.setInnerhtml(desc);
    if (tr.select("String_Node_Str").size() > 0 && tr.select("String_Node_Str").size() == 0) {
      sr.setStatus(Status.GREEN);
    }
 else     if (tr.select("String_Node_Str").size() == 0 && tr.select("String_Node_Str").size() > 0) {
      sr.setStatus(Status.RED);
    }
 else     if (tr.select("String_Node_Str").size() > 0 && tr.select("String_Node_Str").size() > 0) {
      sr.setStatus(Status.YELLOW);
    }
    sr.setNr(i / rows_per_hit);
    results.add(sr);
  }
  return new SearchRequestResult(results,results_total,page);
}

Fixed version (ground truth):
private SearchRequestResult parse_search(String html,int page){
  List<SearchResult> results=new ArrayList<SearchResult>();
  Document doc=Jsoup.parse(html);
  Elements trList=doc.select("String_Node_Str");
  Elements elem=null;
  int rows_per_hit=2;
  if (trList.size() > 1 && trList.get(0).select("String_Node_Str").size() > 0 && trList.get(1).select("String_Node_Str").size() > 0) {
    rows_per_hit=1;
  }
  try {
    int rows=m_data.getInt("String_Node_Str");
    rows_per_hit=rows;
  }
 catch (  JSONException e) {
  }
  int results_total;
  Pattern pattern=Pattern.compile("String_Node_Str");
  Matcher matcher=pattern.matcher(html);
  if (matcher.find()) {
    results_total=Integer.parseInt(matcher.group(1));
  }
 else {
    results_total=-1;
  }
  int numOfEntries=trList.size() / rows_per_hit;
  if (numOfEntries > numOfResultsPerPage)   numOfEntries=numOfResultsPerPage;
  for (int i=0; i < numOfEntries; i++) {
    Element tr=trList.get(i * rows_per_hit);
    SearchResult sr=new SearchResult();
    elem=tr.select("String_Node_Str");
    if (elem.size() > 0) {
      String hrefID=elem.get(0).attr("String_Node_Str");
      sr.setId(hrefID);
    }
 else {
      elem=tr.select("String_Node_Str");
      if (elem.size() > 0) {
        String nameID=elem.get(0).attr("String_Node_Str").trim();
        String hrefID="String_Node_Str" + m_opac_dir + "String_Node_Str"+ nameID+ "String_Node_Str";
        sr.setId(hrefID);
      }
    }
    try {
      elem=tr.select("String_Node_Str");
      if (elem.size() > 0) {
        setMediaTypeFromImageFilename(sr,elem.get(0).attr("String_Node_Str"));
      }
    }
 catch (    NumberFormatException e) {
    }
    String desc="String_Node_Str";
    try {
      JSONArray searchtable=m_data.getJSONArray("String_Node_Str");
      for (int j=0; j < searchtable.length(); j++) {
        int colNum=searchtable.getInt(j);
        if (j > 0)         desc=desc + "String_Node_Str";
        desc=desc + tr.child(colNum).html();
      }
    }
 catch (    Exception e) {
      e.printStackTrace();
    }
    desc=desc.replaceAll("String_Node_Str","String_Node_Str");
    sr.setInnerhtml(desc);
    if (tr.select("String_Node_Str").size() > 0 && tr.select("String_Node_Str").size() == 0) {
      sr.setStatus(Status.GREEN);
    }
 else     if (tr.select("String_Node_Str").size() == 0 && tr.select("String_Node_Str").size() > 0) {
      sr.setStatus(Status.RED);
    }
 else     if (tr.select("String_Node_Str").size() > 0 && tr.select("String_Node_Str").size() > 0) {
      sr.setStatus(Status.YELLOW);
    }
    sr.setNr(i / rows_per_hit);
    results.add(sr);
  }
  return new SearchRequestResult(results,results_total,page);
}