Program: 86331
Project: 86331
Buggy source:
private List<SearchResult> parse_search(String html){
  Document doc=Jsoup.parse(html);
  if (doc.select("String_Node_Str").size() > 0) {
    last_error=doc.select("String_Node_Str").text().trim();
    return null;
  }
 else   if (doc.select("String_Node_Str").size() > 0) {
    last_error=doc.select("String_Node_Str").text().trim();
    return null;
  }
  this.results=doc.select("String_Node_Str").first().text();
  if (results.contains("String_Node_Str")) {
    reusehtml=html;
    last_error="String_Node_Str";
    return null;
  }
  Elements table=doc.select("String_Node_Str");
  identifier=null;
  List<SearchResult> results=new ArrayList<SearchResult>();
  for (int i=0; i < table.size(); i++) {
    Element tr=table.get(i);
    SearchResult sr=new SearchResult();
    if (tr.select("String_Node_Str").size() > 0) {
      String[] fparts=tr.select("String_Node_Str").get(0).attr("String_Node_Str").split("String_Node_Str");
      sr.setType(fparts[fparts.length - 1].replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").toLowerCase());
    }
    String desc="String_Node_Str";
    List<Node> children=tr.child(2).childNodes();
    int childrennum=children.size();
    boolean haslink=false;
    for (int ch=0; ch < childrennum; ch++) {
      Node node=children.get(ch);
      if (node instanceof TextNode) {
        String text=((TextNode)node).text().trim();
        if (!text.equals("String_Node_Str"))         desc+=text + "String_Node_Str";
      }
 else       if (node instanceof Element) {
        if (((Element)node).tag().getName().equals("String_Node_Str")) {
          if (node.hasAttr("String_Node_Str") && !haslink) {
            haslink=true;
            desc+=((Element)node).text() + "String_Node_Str";
            try {
              List<NameValuePair> anyurl=URLEncodedUtils.parse(new URI(((Element)node).attr("String_Node_Str")),"String_Node_Str");
              for (              NameValuePair nv : anyurl) {
                if (nv.getName().equals("String_Node_Str")) {
                  identifier=nv.getValue();
                  break;
                }
              }
            }
 catch (            Exception e) {
              e.printStackTrace();
            }
          }
        }
      }
    }
    if (desc.endsWith("String_Node_Str"))     desc=desc.substring(0,desc.length() - 6);
    sr.setInnerhtml(desc);
    sr.setNr(i);
    sr.setId(null);
    results.add(sr);
  }
  resultcount=results.size();
  return results;
}

Fixed version (ground truth):
private List<SearchResult> parse_search(String html){
  Document doc=Jsoup.parse(html);
  if (doc.select("String_Node_Str").size() > 0) {
    last_error=doc.select("String_Node_Str").text().trim();
    return null;
  }
 else   if (doc.select("String_Node_Str").size() > 0) {
    last_error=doc.select("String_Node_Str").text().trim();
    return null;
  }
  this.results=doc.select("String_Node_Str").first().text();
  if (results.contains("String_Node_Str") || results.contains("String_Node_Str")) {
    reusehtml=html;
    last_error="String_Node_Str";
    return null;
  }
  Elements table=doc.select("String_Node_Str");
  identifier=null;
  List<SearchResult> results=new ArrayList<SearchResult>();
  for (int i=0; i < table.size(); i++) {
    Element tr=table.get(i);
    SearchResult sr=new SearchResult();
    if (tr.select("String_Node_Str").size() > 0) {
      String[] fparts=tr.select("String_Node_Str").get(0).attr("String_Node_Str").split("String_Node_Str");
      sr.setType(fparts[fparts.length - 1].replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").toLowerCase());
    }
    String desc="String_Node_Str";
    List<Node> children=tr.child(2).childNodes();
    int childrennum=children.size();
    boolean haslink=false;
    for (int ch=0; ch < childrennum; ch++) {
      Node node=children.get(ch);
      if (node instanceof TextNode) {
        String text=((TextNode)node).text().trim();
        if (!text.equals("String_Node_Str"))         desc+=text + "String_Node_Str";
      }
 else       if (node instanceof Element) {
        if (((Element)node).tag().getName().equals("String_Node_Str")) {
          if (node.hasAttr("String_Node_Str") && !haslink) {
            haslink=true;
            desc+=((Element)node).text() + "String_Node_Str";
            try {
              List<NameValuePair> anyurl=URLEncodedUtils.parse(new URI(((Element)node).attr("String_Node_Str")),"String_Node_Str");
              for (              NameValuePair nv : anyurl) {
                if (nv.getName().equals("String_Node_Str")) {
                  identifier=nv.getValue();
                  break;
                }
              }
            }
 catch (            Exception e) {
              e.printStackTrace();
            }
          }
        }
      }
    }
    if (desc.endsWith("String_Node_Str"))     desc=desc.substring(0,desc.length() - 6);
    sr.setInnerhtml(desc);
    sr.setNr(i);
    sr.setId(null);
    results.add(sr);
  }
  resultcount=results.size();
  return results;
}