Program: 86214
Project: 86214
Buggy source:
protected DetailledItem parse_result(String html) throws IOException {
  Document doc=Jsoup.parse(html);
  doc.setBaseUri(opac_url);
  DetailledItem result=new DetailledItem();
  if (doc.select("String_Node_Str").size() > 0) {
    String js=doc.select("String_Node_Str").first().html();
    String isbn=matchJSVariable(js,"String_Node_Str");
    String ajaxUrl=matchJSVariable(js,"String_Node_Str");
    if (!"String_Node_Str".equals(isbn) && !"String_Node_Str".equals(ajaxUrl)) {
      String url=new URL(new URL(opac_url + "String_Node_Str"),ajaxUrl).toString();
      String coverUrl=httpGet(url + "String_Node_Str" + isbn+ "String_Node_Str",ENCODING);
      if (!"String_Node_Str".equals(coverUrl)) {
        result.setCover(coverUrl.replace("String_Node_Str","String_Node_Str").trim());
      }
    }
  }
  result.setTitle(doc.select("String_Node_Str").first().text());
  for (  Element tr : doc.select("String_Node_Str")) {
    String detailName=tr.select("String_Node_Str").first().text().trim();
    String detailValue=tr.select("String_Node_Str").last().text().trim();
    result.addDetail(new Detail(detailName,detailValue));
    if (detailName.contains("String_Node_Str")) {
      result.setId(detailValue);
    }
  }
  if (result.getDetails().size() == 0 && doc.select("String_Node_Str").size() > 0) {
    String dname="String_Node_Str";
    String dval="String_Node_Str";
    boolean in_value=true;
    for (    Node n : doc.select("String_Node_Str").first().childNodes()) {
      if (n instanceof Element && ((Element)n).tagName().equals("String_Node_Str")) {
        if (in_value) {
          if (dname.length() > 0 && dval.length() > 0) {
            result.addDetail(new Detail(dname,dval));
          }
          dname=((Element)n).text();
          in_value=false;
        }
 else {
          dname+=((Element)n).text();
        }
      }
 else {
        String t=null;
        if (n instanceof TextNode) {
          t=((TextNode)n).text();
        }
 else         if (n instanceof Element) {
          t=((Element)n).text();
        }
        if (t != null) {
          if (in_value) {
            dval+=t;
          }
 else {
            in_value=true;
            dval=t;
          }
        }
      }
    }
  }
  String copiesParameter=doc.select("String_Node_Str").attr("String_Node_Str").replace("String_Node_Str","String_Node_Str");
  if (!"String_Node_Str".equals(copiesParameter)) {
    String copiesHtml=httpGet(opac_url + "String_Node_Str" + copiesParameter,ENCODING);
    Document copiesDoc=Jsoup.parse(copiesHtml);
    List<String> table_keys=new ArrayList<>();
    for (    Element th : copiesDoc.select("String_Node_Str")) {
      if (th.text().contains("String_Node_Str")) {
        table_keys.add(DetailledItem.KEY_COPY_BRANCH);
      }
 else       if (th.text().contains("String_Node_Str")) {
        table_keys.add(DetailledItem.KEY_COPY_STATUS);
      }
 else       if (th.text().contains("String_Node_Str")) {
        table_keys.add(DetailledItem.KEY_COPY_SHELFMARK);
      }
 else {
        table_keys.add(null);
      }
    }
    for (    Element tr : copiesDoc.select("String_Node_Str")) {
      Map<String,String> copy=new HashMap<>();
      int i=0;
      for (      Element td : tr.select("String_Node_Str")) {
        if (table_keys.get(i) != null) {
          copy.put(table_keys.get(i),td.text().trim());
        }
        i++;
      }
      result.addCopy(copy);
    }
  }
  if (!"String_Node_Str".equals(copiesParameter)) {
    String reservationParameter=copiesParameter.replace("String_Node_Str","String_Node_Str");
    try {
      String reservationHtml=httpGet(opac_url + "String_Node_Str" + reservationParameter,ENCODING);
      Document reservationDoc=Jsoup.parse(reservationHtml);
      reservationDoc.setBaseUri(opac_url);
      if (reservationDoc.select("String_Node_Str").size() == 1) {
        result.setReservable(true);
        result.setReservation_info(reservationDoc.select("String_Node_Str").first().attr("String_Node_Str"));
      }
    }
 catch (    Exception e) {
      e.printStackTrace();
    }
  }
  try {
    Element isvolume=null;
    Map<String,String> volume=new HashMap<>();
    Elements links=doc.select("String_Node_Str");
    int elcount=links.size();
    for (int eli=0; eli < elcount; eli++) {
      List<NameValuePair> anyurl=URLEncodedUtils.parse(new URI(links.get(eli).attr("String_Node_Str")),"String_Node_Str");
      for (      NameValuePair nv : anyurl) {
        if (nv.getName().equals("String_Node_Str") && nv.getValue().equals("String_Node_Str")) {
          isvolume=links.get(eli);
        }
 else         if (nv.getName().equals("String_Node_Str")) {
          volume.put("String_Node_Str",nv.getValue());
        }
 else         if (nv.getName().equals("String_Node_Str")) {
          volume.put("String_Node_Str",nv.getValue());
        }
      }
      if (isvolume != null) {
        volume.put("String_Node_Str","String_Node_Str");
        result.setVolumesearch(volume);
        break;
      }
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
  return result;
}

Fixed version (ground truth):
protected DetailledItem parse_result(String html) throws IOException {
  Document doc=Jsoup.parse(html);
  doc.setBaseUri(opac_url);
  DetailledItem result=new DetailledItem();
  if (doc.select("String_Node_Str").size() > 0) {
    String js=doc.select("String_Node_Str").first().html();
    String isbn=matchJSVariable(js,"String_Node_Str");
    String ajaxUrl=matchJSVariable(js,"String_Node_Str");
    if (ajaxUrl == null) {
      ajaxUrl=matchJSParameter(js,"String_Node_Str");
    }
    if (ajaxUrl != null && !"String_Node_Str".equals(ajaxUrl)) {
      if (!"String_Node_Str".equals(isbn) && isbn != null) {
        String url=new URL(new URL(opac_url + "String_Node_Str"),ajaxUrl).toString();
        String coverUrl=httpGet(url + "String_Node_Str" + isbn+ "String_Node_Str",ENCODING);
        if (!"String_Node_Str".equals(coverUrl)) {
          result.setCover(coverUrl.replace("String_Node_Str","String_Node_Str").trim());
        }
      }
 else {
        String url=new URL(new URL(opac_url + "String_Node_Str"),ajaxUrl).toString();
        String coverJs=httpGet(url,ENCODING);
        result.setCover(matchHTMLAttr(coverJs,"String_Node_Str"));
      }
    }
  }
  result.setTitle(doc.select("String_Node_Str").first().text());
  for (  Element tr : doc.select("String_Node_Str")) {
    String detailName=tr.select("String_Node_Str").first().text().trim();
    String detailValue=tr.select("String_Node_Str").last().text().trim();
    result.addDetail(new Detail(detailName,detailValue));
    if (detailName.contains("String_Node_Str")) {
      result.setId(detailValue);
    }
  }
  if (result.getDetails().size() == 0 && doc.select("String_Node_Str").size() > 0) {
    String dname="String_Node_Str";
    String dval="String_Node_Str";
    boolean in_value=true;
    for (    Node n : doc.select("String_Node_Str").first().childNodes()) {
      if (n instanceof Element && ((Element)n).tagName().equals("String_Node_Str")) {
        if (in_value) {
          if (dname.length() > 0 && dval.length() > 0) {
            result.addDetail(new Detail(dname,dval));
          }
          dname=((Element)n).text();
          in_value=false;
        }
 else {
          dname+=((Element)n).text();
        }
      }
 else {
        String t=null;
        if (n instanceof TextNode) {
          t=((TextNode)n).text();
        }
 else         if (n instanceof Element) {
          t=((Element)n).text();
        }
        if (t != null) {
          if (in_value) {
            dval+=t;
          }
 else {
            in_value=true;
            dval=t;
          }
        }
      }
    }
  }
  String copiesParameter=doc.select("String_Node_Str").attr("String_Node_Str").replace("String_Node_Str","String_Node_Str");
  if (!"String_Node_Str".equals(copiesParameter)) {
    String copiesHtml=httpGet(opac_url + "String_Node_Str" + copiesParameter,ENCODING);
    Document copiesDoc=Jsoup.parse(copiesHtml);
    List<String> table_keys=new ArrayList<>();
    for (    Element th : copiesDoc.select("String_Node_Str")) {
      if (th.text().contains("String_Node_Str")) {
        table_keys.add(DetailledItem.KEY_COPY_BRANCH);
      }
 else       if (th.text().contains("String_Node_Str")) {
        table_keys.add(DetailledItem.KEY_COPY_STATUS);
      }
 else       if (th.text().contains("String_Node_Str")) {
        table_keys.add(DetailledItem.KEY_COPY_SHELFMARK);
      }
 else {
        table_keys.add(null);
      }
    }
    for (    Element tr : copiesDoc.select("String_Node_Str")) {
      Map<String,String> copy=new HashMap<>();
      int i=0;
      for (      Element td : tr.select("String_Node_Str")) {
        if (table_keys.get(i) != null) {
          copy.put(table_keys.get(i),td.text().trim());
        }
        i++;
      }
      result.addCopy(copy);
    }
  }
  if (!"String_Node_Str".equals(copiesParameter)) {
    String reservationParameter=copiesParameter.replace("String_Node_Str","String_Node_Str");
    try {
      String reservationHtml=httpGet(opac_url + "String_Node_Str" + reservationParameter,ENCODING);
      Document reservationDoc=Jsoup.parse(reservationHtml);
      reservationDoc.setBaseUri(opac_url);
      if (reservationDoc.select("String_Node_Str").size() == 1) {
        result.setReservable(true);
        result.setReservation_info(reservationDoc.select("String_Node_Str").first().attr("String_Node_Str"));
      }
    }
 catch (    Exception e) {
      e.printStackTrace();
    }
  }
  try {
    Element isvolume=null;
    Map<String,String> volume=new HashMap<>();
    Elements links=doc.select("String_Node_Str");
    int elcount=links.size();
    for (int eli=0; eli < elcount; eli++) {
      List<NameValuePair> anyurl=URLEncodedUtils.parse(new URI(links.get(eli).attr("String_Node_Str")),"String_Node_Str");
      for (      NameValuePair nv : anyurl) {
        if (nv.getName().equals("String_Node_Str") && nv.getValue().equals("String_Node_Str")) {
          isvolume=links.get(eli);
        }
 else         if (nv.getName().equals("String_Node_Str")) {
          volume.put("String_Node_Str",nv.getValue());
        }
 else         if (nv.getName().equals("String_Node_Str")) {
          volume.put("String_Node_Str",nv.getValue());
        }
      }
      if (isvolume != null) {
        volume.put("String_Node_Str","String_Node_Str");
        result.setVolumesearch(volume);
        break;
      }
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
  return result;
}