Program: 86257
Project: 86257
Buggy source:
protected SearchRequestResult parse_search(String html,int page) throws OpacErrorException, NotReachableException {
  Document doc=Jsoup.parse(html);
  if (doc.select("String_Node_Str").size() > 0) {
    if (doc.select("String_Node_Str").text().trim().startsWith("String_Node_Str")) {
      return new SearchRequestResult(new ArrayList<SearchResult>(),0,1,1);
    }
 else     if (!doc.select("String_Node_Str").text().trim().contains("String_Node_Str") && !doc.select("String_Node_Str").text().trim().contains("String_Node_Str")) {
      throw new OpacErrorException(doc.select("String_Node_Str").text().trim());
    }
  }
 else   if (doc.select("String_Node_Str").size() > 0) {
    if (doc.select("String_Node_Str").text().trim().contains("String_Node_Str")) {
      throw new NotReachableException();
    }
 else {
      throw new OpacErrorException(stringProvider.getFormattedString(StringProvider.UNKNOWN_ERROR_WITH_DESCRIPTION,doc.select("String_Node_Str").text().trim()));
    }
  }
 else {
    return null;
  }
  updateRechnr(doc);
  reusehtml=html;
  results_total=-1;
  if (doc.select("String_Node_Str").text().trim().contains("String_Node_Str")) {
    results_total=200;
  }
 else {
    String resultnumstr=doc.select("String_Node_Str").first().text();
    resultnumstr=resultnumstr.substring(0,resultnumstr.indexOf("String_Node_Str")).trim();
    results_total=Integer.parseInt(resultnumstr);
  }
  List<SearchResult> results=new ArrayList<SearchResult>();
  Elements tables=doc.select("String_Node_Str").first().select("String_Node_Str");
  Map<String,Integer> colmap=new HashMap<String,Integer>();
  Element thead=doc.select("String_Node_Str").first().select("String_Node_Str").first();
  int j=0;
  for (  Element th : thead.select("String_Node_Str")) {
    String text=th.text().trim().toLowerCase(Locale.GERMAN);
    if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str") || text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
    j++;
  }
  if (colmap.size() == 0) {
    colmap.put("String_Node_Str",0);
    colmap.put("String_Node_Str",1);
    colmap.put("String_Node_Str",2);
    colmap.put("String_Node_Str",3);
    colmap.put("String_Node_Str",4);
    colmap.put("String_Node_Str",5);
    colmap.put("String_Node_Str",6);
    colmap.put("String_Node_Str",7);
    colmap.put("String_Node_Str",8);
  }
  for (int i=0; i < tables.size(); i++) {
    Element tr=tables.get(i);
    SearchResult sr=new SearchResult();
    if (tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).select("String_Node_Str").size() > 0) {
      String imgUrl=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).select("String_Node_Str").first().attr("String_Node_Str");
      sr.setCover(imgUrl);
    }
    if (colmap.get("String_Node_Str") != null) {
      String mType=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).text().trim().replace("String_Node_Str","String_Node_Str");
      if (data.has("String_Node_Str")) {
        try {
          sr.setType(MediaType.valueOf(data.getJSONObject("String_Node_Str").getString(mType.toLowerCase(Locale.GERMAN))));
        }
 catch (        JSONException e) {
          sr.setType(defaulttypes.get(mType.toLowerCase(Locale.GERMAN)));
        }
catch (        IllegalArgumentException e) {
          sr.setType(defaulttypes.get(mType.toLowerCase(Locale.GERMAN)));
        }
      }
 else {
        sr.setType(defaulttypes.get(mType.toLowerCase(Locale.GERMAN)));
      }
    }
    String title="String_Node_Str";
    String additionalInfo="String_Node_Str";
    if (colmap.get("String_Node_Str") != null) {
      Element info=tr.select("String_Node_Str").get(colmap.get("String_Node_Str"));
      title=info.select("String_Node_Str").text().trim();
      String authorIn=info.text().substring(0,info.text().indexOf(title));
      if (authorIn.contains("String_Node_Str")) {
        authorIn=authorIn.replaceFirst("String_Node_Str","String_Node_Str");
        additionalInfo+="String_Node_Str" + authorIn;
      }
    }
 else {
      title=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).text().trim().replace("String_Node_Str","String_Node_Str");
      if (title.contains("String_Node_Str")) {
        additionalInfo+=title.substring(title.indexOf("String_Node_Str"));
        title=title.substring(0,title.indexOf("String_Node_Str") - 1).trim();
      }
      if (colmap.containsKey("String_Node_Str")) {
        String author=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).text().trim().replace("String_Node_Str","String_Node_Str");
        additionalInfo+="String_Node_Str" + author;
      }
    }
    if (colmap.containsKey("String_Node_Str")) {
      String publisher=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).text().trim().replace("String_Node_Str","String_Node_Str");
      additionalInfo+="String_Node_Str" + publisher;
    }
    if (colmap.containsKey("String_Node_Str")) {
      String year=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).text().trim().replace("String_Node_Str","String_Node_Str");
      additionalInfo+="String_Node_Str" + year + "String_Node_Str";
    }
    sr.setInnerhtml("String_Node_Str" + title + "String_Node_Str"+ additionalInfo);
    String status=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).text().trim().replace("String_Node_Str","String_Node_Str");
    if (status.equals("String_Node_Str") || status.toLowerCase(Locale.GERMAN).contains("String_Node_Str") || status.contains("String_Node_Str")|| status.contains("String_Node_Str")|| status.contains("String_Node_Str")) {
      sr.setStatus(Status.GREEN);
    }
 else {
      sr.setStatus(Status.RED);
      sr.setInnerhtml(sr.getInnerhtml() + "String_Node_Str" + stringProvider.getString(StringProvider.LENT_UNTIL)+ "String_Node_Str"+ status+ "String_Node_Str");
    }
    String link=tr.select("String_Node_Str").attr("String_Node_Str");
    Map<String,String> params=getQueryParamsFirst(link);
    if (params.containsKey("String_Node_Str")) {
      int recno=Integer.valueOf(params.get("String_Node_Str"));
      sr.setNr(10 * (page - 1) + recno - 1);
    }
 else {
      sr.setNr(10 * (page - 1) + i);
    }
    Elements idLinks=tr.select("String_Node_Str");
    if (idLinks.size() > 0) {
      Map<String,String> idParams=getQueryParamsFirst(idLinks.first().attr("String_Node_Str"));
      String id=idParams.get("String_Node_Str");
      sr.setId(id);
    }
 else {
      sr.setId(null);
    }
    results.add(sr);
  }
  resultcount=results.size();
  return new SearchRequestResult(results,results_total,page);
}

Fixed version (ground truth):
protected SearchRequestResult parse_search(String html,int page) throws OpacErrorException, NotReachableException {
  Document doc=Jsoup.parse(html);
  if (doc.select("String_Node_Str").size() > 0) {
    if (doc.select("String_Node_Str").text().trim().startsWith("String_Node_Str")) {
      return new SearchRequestResult(new ArrayList<SearchResult>(),0,1,1);
    }
 else     if (!doc.select("String_Node_Str").text().trim().contains("String_Node_Str") && !doc.select("String_Node_Str").text().trim().contains("String_Node_Str")) {
      throw new OpacErrorException(doc.select("String_Node_Str").text().trim());
    }
  }
 else   if (doc.select("String_Node_Str").size() > 0) {
    if (doc.select("String_Node_Str").text().trim().contains("String_Node_Str")) {
      throw new NotReachableException();
    }
 else {
      throw new OpacErrorException(stringProvider.getFormattedString(StringProvider.UNKNOWN_ERROR_WITH_DESCRIPTION,doc.select("String_Node_Str").text().trim()));
    }
  }
 else {
    return null;
  }
  updateRechnr(doc);
  reusehtml=html;
  results_total=-1;
  if (doc.select("String_Node_Str").text().trim().contains("String_Node_Str")) {
    results_total=200;
  }
 else {
    String resultnumstr=doc.select("String_Node_Str").first().text();
    resultnumstr=resultnumstr.substring(0,resultnumstr.indexOf("String_Node_Str")).trim();
    results_total=Integer.parseInt(resultnumstr);
  }
  List<SearchResult> results=new ArrayList<SearchResult>();
  Elements tables=doc.select("String_Node_Str").first().select("String_Node_Str");
  Map<String,Integer> colmap=new HashMap<String,Integer>();
  Element thead=doc.select("String_Node_Str").first().select("String_Node_Str").first();
  int j=0;
  for (  Element th : thead.select("String_Node_Str")) {
    String text=th.text().trim().toLowerCase(Locale.GERMAN);
    if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str") || text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
 else     if (text.contains("String_Node_Str"))     colmap.put("String_Node_Str",j);
    j++;
  }
  if (colmap.size() == 0) {
    colmap.put("String_Node_Str",0);
    colmap.put("String_Node_Str",1);
    colmap.put("String_Node_Str",2);
    colmap.put("String_Node_Str",3);
    colmap.put("String_Node_Str",4);
    colmap.put("String_Node_Str",5);
    colmap.put("String_Node_Str",6);
    colmap.put("String_Node_Str",7);
    colmap.put("String_Node_Str",8);
  }
  for (int i=0; i < tables.size(); i++) {
    Element tr=tables.get(i);
    SearchResult sr=new SearchResult();
    if (tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).select("String_Node_Str").size() > 0) {
      String imgUrl=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).select("String_Node_Str").first().attr("String_Node_Str");
      sr.setCover(imgUrl);
    }
    if (colmap.get("String_Node_Str") != null) {
      String mType=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).text().trim().replace("String_Node_Str","String_Node_Str");
      if (data.has("String_Node_Str")) {
        try {
          sr.setType(MediaType.valueOf(data.getJSONObject("String_Node_Str").getString(mType.toLowerCase(Locale.GERMAN))));
        }
 catch (        JSONException e) {
          sr.setType(defaulttypes.get(mType.toLowerCase(Locale.GERMAN)));
        }
catch (        IllegalArgumentException e) {
          sr.setType(defaulttypes.get(mType.toLowerCase(Locale.GERMAN)));
        }
      }
 else {
        sr.setType(defaulttypes.get(mType.toLowerCase(Locale.GERMAN)));
      }
    }
    String title="String_Node_Str";
    String additionalInfo="String_Node_Str";
    if (colmap.get("String_Node_Str") != null) {
      Element info=tr.select("String_Node_Str").get(colmap.get("String_Node_Str"));
      title=info.select("String_Node_Str").text().trim();
      String authorIn=info.text().substring(0,info.text().indexOf(title));
      if (authorIn.contains("String_Node_Str")) {
        authorIn=authorIn.replaceFirst("String_Node_Str","String_Node_Str");
        additionalInfo+="String_Node_Str" + authorIn;
      }
    }
 else {
      title=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).text().trim().replace("String_Node_Str","String_Node_Str");
      if (title.contains("String_Node_Str")) {
        additionalInfo+=title.substring(title.indexOf("String_Node_Str"));
        title=title.substring(0,title.indexOf("String_Node_Str") - 1).trim();
      }
      if (colmap.containsKey("String_Node_Str")) {
        String author=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).text().trim().replace("String_Node_Str","String_Node_Str");
        additionalInfo+="String_Node_Str" + author;
      }
    }
    if (colmap.containsKey("String_Node_Str")) {
      String publisher=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).text().trim().replace("String_Node_Str","String_Node_Str");
      additionalInfo+="String_Node_Str" + publisher;
    }
    if (colmap.containsKey("String_Node_Str")) {
      String year=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).text().trim().replace("String_Node_Str","String_Node_Str");
      additionalInfo+="String_Node_Str" + year + "String_Node_Str";
    }
    sr.setInnerhtml("String_Node_Str" + title + "String_Node_Str"+ additionalInfo);
    String status=tr.select("String_Node_Str").get(colmap.get("String_Node_Str")).text().trim().replace("String_Node_Str","String_Node_Str");
    if (status.equals("String_Node_Str") || status.toLowerCase(Locale.GERMAN).contains("String_Node_Str") || status.contains("String_Node_Str")|| status.contains("String_Node_Str")|| status.contains("String_Node_Str")) {
      sr.setStatus(Status.GREEN);
    }
 else {
      sr.setStatus(Status.RED);
      sr.setInnerhtml(sr.getInnerhtml() + "String_Node_Str" + stringProvider.getString(StringProvider.LENT_UNTIL)+ "String_Node_Str"+ status+ "String_Node_Str");
    }
    String link=tr.select("String_Node_Str").attr("String_Node_Str");
    Map<String,String> params=getQueryParamsFirst(link);
    if (params.containsKey("String_Node_Str")) {
      int recno=Integer.valueOf(params.get("String_Node_Str"));
      sr.setNr(recno - 1);
    }
 else {
      sr.setNr(10 * (page - 1) + i);
    }
    Elements idLinks=tr.select("String_Node_Str");
    if (idLinks.size() > 0) {
      Map<String,String> idParams=getQueryParamsFirst(idLinks.first().attr("String_Node_Str"));
      String id=idParams.get("String_Node_Str");
      sr.setId(id);
    }
 else {
      sr.setId(null);
    }
    results.add(sr);
  }
  resultcount=results.size();
  return new SearchRequestResult(results,results_total,page);
}