Program: 86236
Project: 86236
Buggy source:
@Override public AccountData account(Account acc) throws IOException, JSONException, OpacErrorException {
  Document login=login(acc);
  if (login == null) {
    return null;
  }
  AccountData res=new AccountData(acc.getId());
  String lent_link=null;
  String res_link=null;
  int lent_cnt=-1;
  int res_cnt=-1;
  for (  Element td : login.select("String_Node_Str" + "String_Node_Str")) {
    String section=td.text().trim();
    if (section.contains("String_Node_Str")) {
      lent_link=td.select("String_Node_Str").attr("String_Node_Str");
      lent_cnt=Integer.parseInt(td.nextElementSibling().text().trim());
    }
 else     if (section.contains("String_Node_Str")) {
      res_link=td.select("String_Node_Str").attr("String_Node_Str");
      res_cnt=Integer.parseInt(td.nextElementSibling().text().trim());
    }
 else     if (section.contains("String_Node_Str")) {
      res.setPendingFees(td.nextElementSibling().text().trim());
    }
 else     if (section.matches("String_Node_Str")) {
      res.setValidUntil(td.nextElementSibling().text().trim());
    }
  }
  assert(lent_cnt >= 0);
  assert(res_cnt >= 0);
  if (lent_link == null) {
    return null;
  }
  String lent_html=httpGet(opac_url + "String_Node_Str" + lent_link.replace("String_Node_Str","String_Node_Str"),getDefaultEncoding());
  Document lent_doc=Jsoup.parse(lent_html);
  List<Map<String,String>> lent=new ArrayList<>();
  SimpleDateFormat sdf=new SimpleDateFormat("String_Node_Str",Locale.GERMAN);
  Pattern id_pat=Pattern.compile("String_Node_Str");
  for (  Element table : lent_doc.select("String_Node_Str" + "String_Node_Str")) {
    Map<String,String> item=new HashMap<>();
    for (    Element tr : table.select("String_Node_Str")) {
      String desc=tr.select("String_Node_Str").text().trim();
      String value=tr.select("String_Node_Str").text().trim();
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_LENT_TITLE,value);
      }
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_LENT_AUTHOR,value);
      }
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_LENT_BARCODE,value);
      }
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_LENT_BRANCH,value);
      }
      if (desc.matches("String_Node_Str")) {
        value=value.split("String_Node_Str")[0];
        item.put(AccountData.KEY_LENT_DEADLINE,value);
        try {
          item.put(AccountData.KEY_LENT_DEADLINE_TIMESTAMP,String.valueOf(sdf.parse(value).getTime()));
        }
 catch (        ParseException e) {
          e.printStackTrace();
        }
      }
    }
    if (table.select("String_Node_Str").size() == 1) {
      Matcher matcher1=id_pat.matcher(table.select("String_Node_Str").attr("String_Node_Str"));
      if (matcher1.matches()) {
        item.put(AccountData.KEY_LENT_LINK,matcher1.group(1));
      }
    }
    lent.add(item);
  }
  res.setLent(lent);
  assert(lent_cnt <= lent.size());
  List<Map<String,String>> reservations=new ArrayList<>();
  String res_html=httpGet(opac_url + "String_Node_Str" + res_link,getDefaultEncoding());
  Document res_doc=Jsoup.parse(res_html);
  for (  Element table : res_doc.select("String_Node_Str" + "String_Node_Str")) {
    Map<String,String> item=new HashMap<>();
    for (    Element tr : table.select("String_Node_Str")) {
      String desc=tr.select("String_Node_Str").text().trim();
      String value=tr.select("String_Node_Str").text().trim();
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_RESERVATION_TITLE,value);
      }
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_RESERVATION_FORMAT,value);
      }
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_RESERVATION_BRANCH,value);
      }
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_RESERVATION_READY,value);
      }
    }
    if ("String_Node_Str".equals(item.get(AccountData.KEY_RESERVATION_READY))) {
      continue;
    }
    reservations.add(item);
  }
  res.setReservations(reservations);
  assert(reservations.size() >= res_cnt);
  return res;
}

Fixed version (ground truth):
@Override public AccountData account(Account acc) throws IOException, JSONException, OpacErrorException {
  Document login=login(acc);
  if (login == null) {
    return null;
  }
  AccountData res=new AccountData(acc.getId());
  String lent_link=null;
  String res_link=null;
  int lent_cnt=-1;
  int res_cnt=-1;
  for (  Element td : login.select("String_Node_Str" + "String_Node_Str")) {
    String section=td.text().trim();
    if (section.contains("String_Node_Str")) {
      lent_link=td.select("String_Node_Str").attr("String_Node_Str");
      lent_cnt=Integer.parseInt(td.nextElementSibling().text().trim());
    }
 else     if (section.contains("String_Node_Str")) {
      res_link=td.select("String_Node_Str").attr("String_Node_Str");
      res_cnt=Integer.parseInt(td.nextElementSibling().text().trim());
    }
 else     if (section.contains("String_Node_Str")) {
      res.setPendingFees(td.nextElementSibling().text().trim());
    }
 else     if (section.matches("String_Node_Str")) {
      res.setValidUntil(td.nextElementSibling().text().trim());
    }
  }
  for (  Element a : login.select("String_Node_Str")) {
    if (a.text().contains("String_Node_Str")) {
      lent_link=a.attr("String_Node_Str");
    }
 else     if (a.text().contains("String_Node_Str")) {
      res_link=a.attr("String_Node_Str");
    }
  }
  if (lent_link == null) {
    return null;
  }
  String lent_html=httpGet(opac_url + "String_Node_Str" + lent_link.replace("String_Node_Str","String_Node_Str"),getDefaultEncoding());
  Document lent_doc=Jsoup.parse(lent_html);
  List<Map<String,String>> lent=new ArrayList<>();
  SimpleDateFormat sdf=new SimpleDateFormat("String_Node_Str",Locale.GERMAN);
  Pattern id_pat=Pattern.compile("String_Node_Str");
  for (  Element table : lent_doc.select("String_Node_Str" + "String_Node_Str" + "String_Node_Str")) {
    Map<String,String> item=new HashMap<>();
    for (    Element tr : table.select("String_Node_Str")) {
      String desc=tr.select("String_Node_Str").text().trim();
      String value=tr.select("String_Node_Str").text().trim();
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_LENT_TITLE,value);
      }
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_LENT_AUTHOR,value);
      }
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_LENT_BARCODE,value);
      }
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_LENT_BRANCH,value);
      }
      if (desc.matches("String_Node_Str")) {
        value=value.split("String_Node_Str")[0];
        item.put(AccountData.KEY_LENT_DEADLINE,value);
        try {
          item.put(AccountData.KEY_LENT_DEADLINE_TIMESTAMP,String.valueOf(sdf.parse(value).getTime()));
        }
 catch (        ParseException e) {
          e.printStackTrace();
        }
      }
    }
    if (table.select("String_Node_Str").size() == 1) {
      Matcher matcher1=id_pat.matcher(table.select("String_Node_Str").attr("String_Node_Str"));
      if (matcher1.matches()) {
        item.put(AccountData.KEY_LENT_LINK,matcher1.group(1));
      }
    }
    lent.add(item);
  }
  res.setLent(lent);
  List<Map<String,String>> reservations=new ArrayList<>();
  String res_html=httpGet(opac_url + "String_Node_Str" + res_link,getDefaultEncoding());
  Document res_doc=Jsoup.parse(res_html);
  for (  Element table : res_doc.select("String_Node_Str" + "String_Node_Str" + "String_Node_Str")) {
    Map<String,String> item=new HashMap<>();
    for (    Element tr : table.select("String_Node_Str")) {
      String desc=tr.select("String_Node_Str").text().trim();
      String value=tr.select("String_Node_Str").text().trim();
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_RESERVATION_TITLE,value);
      }
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_RESERVATION_FORMAT,value);
      }
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_RESERVATION_BRANCH,value);
      }
      if (desc.equals("String_Node_Str")) {
        item.put(AccountData.KEY_RESERVATION_READY,value);
      }
    }
    if ("String_Node_Str".equals(item.get(AccountData.KEY_RESERVATION_READY))) {
      continue;
    }
    reservations.add(item);
  }
  res.setReservations(reservations);
  return res;
}