Program: 86287
Project: 86287
Buggy source:
private DetailledItem parse_result(String html){
  DetailledItem item=new DetailledItem();
  Document document=Jsoup.parse(html);
  Elements rows=document.select("String_Node_Str");
  Detail detail=null;
  Map<String,String> copy_last_content=null;
  int copy_row=0;
  String[] copy_keys=new String[]{DetailledItem.KEY_COPY_BARCODE,DetailledItem.KEY_COPY_BRANCH,DetailledItem.KEY_COPY_DEPARTMENT,DetailledItem.KEY_COPY_LOCATION,DetailledItem.KEY_COPY_STATUS,DetailledItem.KEY_COPY_RETURN,DetailledItem.KEY_COPY_RESERVATIONS};
  int[] copy_map=new int[]{3,1,-1,1,4,-1,-1};
  try {
    JSONObject map=m_data.getJSONObject("String_Node_Str");
    for (int i=0; i < copy_keys.length; i++) {
      if (map.has(copy_keys[i]))       copy_map[i]=map.getInt(copy_keys[i]);
    }
  }
 catch (  Exception e) {
  }
  for (  Element row : rows) {
    Elements columns=row.children();
    if (columns.size() == 2) {
      String firstColumn=columns.get(0).text().replace("String_Node_Str","String_Node_Str").trim();
      String secondColumn=columns.get(1).text().replace("String_Node_Str","String_Node_Str").trim();
      if (firstColumn.length() > 0) {
        if (firstColumn.equalsIgnoreCase("String_Node_Str")) {
          detail=null;
          item.setTitle(secondColumn);
        }
 else {
          if (secondColumn.contains("String_Node_Str") && columns.get(1).select("String_Node_Str").size() > 0) {
            secondColumn+="String_Node_Str" + columns.get(1).select("String_Node_Str").first().attr("String_Node_Str");
          }
          detail=new Detail(firstColumn,secondColumn);
          item.getDetails().add(detail);
        }
      }
 else {
        if (detail != null) {
          String content=detail.getContent() + "String_Node_Str" + secondColumn;
          detail.setContent(content);
        }
 else {
          if (columns.get(0).select("String_Node_Str").size() > 0) {
            item.setCover(columns.get(0).select("String_Node_Str").first().attr("String_Node_Str"));
          }
        }
      }
    }
 else     if (columns.size() > 3) {
      if (copy_row > 0) {
        Map<String,String> e=new HashMap<String,String>();
        for (int j=0; j < copy_keys.length; j++) {
          int col=copy_map[j];
          if (col > -1) {
            String text="String_Node_Str";
            if (copy_keys[j].equals(DetailledItem.KEY_COPY_BRANCH)) {
              text=columns.get(col).ownText().replace("String_Node_Str","String_Node_Str").trim();
            }
            if (text.length() == 0) {
              text=columns.get(col).text().replace("String_Node_Str","String_Node_Str").trim();
            }
            if (text.length() == 0) {
              if (copy_keys[j].equals(DetailledItem.KEY_COPY_STATUS)) {
                text="String_Node_Str";
              }
 else {
                if (copy_last_content != null)                 text=copy_last_content.get(copy_keys[j]);
 else                 text="String_Node_Str";
              }
            }
            e.put(copy_keys[j],text);
          }
        }
        if (e.containsKey(DetailledItem.KEY_COPY_BRANCH) && e.containsKey(DetailledItem.KEY_COPY_LOCATION) && e.get(DetailledItem.KEY_COPY_LOCATION).equals(e.get(DetailledItem.KEY_COPY_BRANCH)))         e.remove(DetailledItem.KEY_COPY_LOCATION);
        item.addCopy(e);
        copy_last_content=e;
      }
      copy_row++;
    }
  }
  item.setReservable(true);
  if (m_opac_dir.equals("String_Node_Str")) {
    item.setReservation_info(document.select("String_Node_Str").first().attr("String_Node_Str"));
  }
 else {
    item.setReservation_info(document.select("String_Node_Str").attr("String_Node_Str"));
  }
  return item;
}

Fixed version (ground truth):
private DetailledItem parse_result(String html){
  DetailledItem item=new DetailledItem();
  Document document=Jsoup.parse(html);
  Elements rows=document.select("String_Node_Str");
  Detail detail=null;
  Map<String,String> copy_last_content=null;
  int copy_row=0;
  String[] copy_keys=new String[]{DetailledItem.KEY_COPY_BARCODE,DetailledItem.KEY_COPY_BRANCH,DetailledItem.KEY_COPY_DEPARTMENT,DetailledItem.KEY_COPY_LOCATION,DetailledItem.KEY_COPY_STATUS,DetailledItem.KEY_COPY_RETURN,DetailledItem.KEY_COPY_RESERVATIONS};
  int[] copy_map=new int[]{3,1,-1,1,4,-1,-1};
  try {
    JSONObject map=m_data.getJSONObject("String_Node_Str");
    for (int i=0; i < copy_keys.length; i++) {
      if (map.has(copy_keys[i]))       copy_map[i]=map.getInt(copy_keys[i]);
    }
  }
 catch (  Exception e) {
  }
  for (  Element row : rows) {
    Elements columns=row.children();
    if (columns.size() == 2) {
      String firstColumn=columns.get(0).text().replace("String_Node_Str","String_Node_Str").trim();
      String secondColumn=columns.get(1).text().replace("String_Node_Str","String_Node_Str").trim();
      if (firstColumn.length() > 0) {
        if (firstColumn.equalsIgnoreCase("String_Node_Str")) {
          detail=null;
          item.setTitle(secondColumn);
        }
 else {
          if (secondColumn.contains("String_Node_Str") && columns.get(1).select("String_Node_Str").size() > 0) {
            secondColumn+="String_Node_Str" + columns.get(1).select("String_Node_Str").first().attr("String_Node_Str");
          }
          detail=new Detail(firstColumn,secondColumn);
          item.getDetails().add(detail);
        }
      }
 else {
        if (detail != null) {
          String content=detail.getContent() + "String_Node_Str" + secondColumn;
          detail.setContent(content);
        }
 else {
          if (columns.get(0).select("String_Node_Str").size() > 0) {
            item.setCover(columns.get(0).select("String_Node_Str").first().attr("String_Node_Str"));
          }
        }
      }
    }
 else     if (columns.size() > 3) {
      if (copy_row > 0) {
        Map<String,String> e=new HashMap<String,String>();
        for (int j=0; j < copy_keys.length; j++) {
          int col=copy_map[j];
          if (col > -1) {
            String text="String_Node_Str";
            if (copy_keys[j].equals(DetailledItem.KEY_COPY_BRANCH)) {
              text=columns.get(col).ownText().replace("String_Node_Str","String_Node_Str").trim();
            }
            if (text.length() == 0) {
              text=columns.get(col).text().replace("String_Node_Str","String_Node_Str").trim();
            }
            if (text.length() == 0) {
              if (copy_keys[j].equals(DetailledItem.KEY_COPY_STATUS)) {
                text="String_Node_Str";
              }
 else {
                if (copy_last_content != null)                 text=copy_last_content.get(copy_keys[j]);
 else                 text="String_Node_Str";
              }
            }
            e.put(copy_keys[j],text);
          }
        }
        if (e.containsKey(DetailledItem.KEY_COPY_BRANCH) && e.containsKey(DetailledItem.KEY_COPY_LOCATION) && e.get(DetailledItem.KEY_COPY_LOCATION).equals(e.get(DetailledItem.KEY_COPY_BRANCH)))         e.remove(DetailledItem.KEY_COPY_LOCATION);
        item.addCopy(e);
        copy_last_content=e;
      }
      copy_row++;
    }
  }
  item.setReservable(true);
  if (m_opac_dir.equals("String_Node_Str")) {
    if (document.select("String_Node_Str").size() > 0) {
      item.setReservation_info(document.select("String_Node_Str").first().attr("String_Node_Str"));
    }
 else     if (document.select("String_Node_Str").size() > 0) {
      String href=document.select("String_Node_Str").first().attr("String_Node_Str");
      item.setReservation_info(href.substring(href.indexOf("String_Node_Str")));
    }
 else {
      item.setReservable(false);
    }
  }
 else {
    item.setReservation_info(document.select("String_Node_Str").attr("String_Node_Str"));
  }
  return item;
}