Program: 86185
Project: 86185
Buggy source:
public static AccountData parse_account(Account acc,Document doc,JSONObject data) throws JSONException, NotReachableException {
  JSONObject copymap=data.getJSONObject("String_Node_Str");
  List<LentItem> media=new ArrayList<>();
  if (doc.select("String_Node_Str").size() == 0) {
    throw new NotReachableException();
  }
  Elements exemplartrs=doc.select("String_Node_Str").get(0).select("String_Node_Str");
  DateTimeFormatter fmt=DateTimeFormat.forPattern("String_Node_Str").withLocale(Locale.GERMAN);
  for (int i=0; i < exemplartrs.size(); i++) {
    Element tr=exemplartrs.get(i);
    LentItem item=new LentItem();
    Iterator<?> keys=copymap.keys();
    while (keys.hasNext()) {
      String key=(String)keys.next();
      int index;
      try {
        index=copymap.has(key) ? copymap.getInt(key) : -1;
      }
 catch (      JSONException e1) {
        index=-1;
      }
      if (index >= 0) {
        if (key.equals("String_Node_Str")) {
          if (tr.child(index).children().size() > 0) {
            item.setProlongData(tr.child(index).child(0).attr("String_Node_Str"));
            item.setRenewable(!tr.child(index).child(0).attr("String_Node_Str").contains("String_Node_Str"));
          }
        }
 else         if (key.equals("String_Node_Str")) {
          try {
            item.setDeadline(fmt.parseLocalDate(tr.child(index).text()));
          }
 catch (          IllegalArgumentException e1) {
            e1.printStackTrace();
          }
        }
 else {
          item.set(key,tr.child(index).text());
        }
      }
    }
    media.add(item);
  }
  assert(doc.select("String_Node_Str").get(0).select("String_Node_Str").size() > 0);
  assert(exemplartrs.size() == media.size());
  copymap=data.getJSONObject("String_Node_Str");
  List<ReservedItem> reservations=new ArrayList<>();
  exemplartrs=doc.select("String_Node_Str").get(1).select("String_Node_Str");
  for (int i=0; i < exemplartrs.size(); i++) {
    Element tr=exemplartrs.get(i);
    ReservedItem item=new ReservedItem();
    Iterator<?> keys=copymap.keys();
    while (keys.hasNext()) {
      String key=(String)keys.next();
      int index;
      try {
        index=copymap.has(key) ? copymap.getInt(key) : -1;
      }
 catch (      JSONException e1) {
        index=-1;
      }
      if (index >= 0) {
        if (key.equals("String_Node_Str")) {
          if (tr.child(index).children().size() > 0) {
            item.setCancelData(tr.child(index).child(0).attr("String_Node_Str"));
          }
        }
 else         if (key.equals("String_Node_Str")) {
          try {
            item.setReadyDate(fmt.parseLocalDate(tr.child(index).text()));
          }
 catch (          IllegalArgumentException e1) {
            item.setStatus(tr.child(index).text());
          }
        }
 else         if (key.equals("String_Node_Str")) {
          try {
            item.setExpirationDate(fmt.parseLocalDate(tr.child(index).text()));
          }
 catch (          IllegalArgumentException e1) {
            item.setStatus(tr.child(index).text());
          }
        }
 else {
          item.set(key,tr.child(index).text());
        }
      }
    }
    reservations.add(item);
  }
  assert(doc.select("String_Node_Str").get(1).select("String_Node_Str").size() > 0);
  assert(exemplartrs.size() == reservations.size());
  AccountData res=new AccountData(acc.getId());
  for (  Element row : doc.select("String_Node_Str")) {
    String text=row.text().trim();
    if (text.matches("String_Node_Str")) {
      text=text.replaceAll("String_Node_Str" + "String_Node_Str","String_Node_Str");
      res.setPendingFees(text);
    }
    if (text.matches("String_Node_Str")) {
      text=text.replaceAll("String_Node_Str","String_Node_Str");
      res.setValidUntil(text);
    }
 else     if (text.matches("String_Node_Str")) {
      text=text.replaceAll("String_Node_Str","String_Node_Str");
      res.setValidUntil(text);
    }
  }
  res.setLent(media);
  res.setReservations(reservations);
  return res;
}

Fixed version (ground truth):
public static AccountData parse_account(Account acc,Document doc,JSONObject data) throws JSONException, NotReachableException {
  JSONObject copymap=data.getJSONObject("String_Node_Str");
  List<LentItem> media=new ArrayList<>();
  if (doc.select("String_Node_Str").size() == 0) {
    throw new NotReachableException();
  }
  Elements exemplartrs=doc.select("String_Node_Str").get(0).select("String_Node_Str");
  DateTimeFormatter fmt=DateTimeFormat.forPattern("String_Node_Str").withLocale(Locale.GERMAN);
  DateTimeFormatter fmt2=DateTimeFormat.forPattern("String_Node_Str").withLocale(Locale.GERMAN);
  for (int i=0; i < exemplartrs.size(); i++) {
    Element tr=exemplartrs.get(i);
    LentItem item=new LentItem();
    Iterator<?> keys=copymap.keys();
    while (keys.hasNext()) {
      String key=(String)keys.next();
      int index;
      try {
        index=copymap.has(key) ? copymap.getInt(key) : -1;
      }
 catch (      JSONException e1) {
        index=-1;
      }
      if (index >= 0) {
        if (key.equals("String_Node_Str")) {
          if (tr.child(index).children().size() > 0) {
            item.setProlongData(tr.child(index).child(0).attr("String_Node_Str"));
            item.setRenewable(!tr.child(index).child(0).attr("String_Node_Str").contains("String_Node_Str"));
          }
        }
 else         if (key.equals("String_Node_Str")) {
          try {
            item.setDeadline(fmt.parseLocalDate(tr.child(index).text()));
          }
 catch (          IllegalArgumentException e1) {
            try {
              item.setDeadline(fmt2.parseLocalDate(tr.child(index).text()));
            }
 catch (            IllegalArgumentException e2) {
              e2.printStackTrace();
            }
          }
        }
 else {
          item.set(key,tr.child(index).text());
        }
      }
    }
    media.add(item);
  }
  assert(doc.select("String_Node_Str").get(0).select("String_Node_Str").size() > 0);
  assert(exemplartrs.size() == media.size());
  copymap=data.getJSONObject("String_Node_Str");
  List<ReservedItem> reservations=new ArrayList<>();
  exemplartrs=doc.select("String_Node_Str").get(1).select("String_Node_Str");
  for (int i=0; i < exemplartrs.size(); i++) {
    Element tr=exemplartrs.get(i);
    ReservedItem item=new ReservedItem();
    Iterator<?> keys=copymap.keys();
    while (keys.hasNext()) {
      String key=(String)keys.next();
      int index;
      try {
        index=copymap.has(key) ? copymap.getInt(key) : -1;
      }
 catch (      JSONException e1) {
        index=-1;
      }
      if (index >= 0) {
        if (key.equals("String_Node_Str")) {
          if (tr.child(index).children().size() > 0) {
            item.setCancelData(tr.child(index).child(0).attr("String_Node_Str"));
          }
        }
 else         if (key.equals("String_Node_Str")) {
          try {
            item.setReadyDate(fmt.parseLocalDate(tr.child(index).text()));
          }
 catch (          IllegalArgumentException e1) {
            try {
              item.setReadyDate(fmt2.parseLocalDate(tr.child(index).text()));
            }
 catch (            IllegalArgumentException e2) {
              e2.printStackTrace();
            }
          }
        }
 else         if (key.equals("String_Node_Str")) {
          try {
            item.setExpirationDate(fmt.parseLocalDate(tr.child(index).text()));
          }
 catch (          IllegalArgumentException e1) {
            try {
              item.setExpirationDate(fmt2.parseLocalDate(tr.child(index).text()));
            }
 catch (            IllegalArgumentException e2) {
              item.setStatus(tr.child(index).text());
            }
          }
        }
 else {
          item.set(key,tr.child(index).text());
        }
      }
    }
    reservations.add(item);
  }
  assert(doc.select("String_Node_Str").get(1).select("String_Node_Str").size() > 0);
  assert(exemplartrs.size() == reservations.size());
  AccountData res=new AccountData(acc.getId());
  for (  Element row : doc.select("String_Node_Str")) {
    String text=row.text().trim();
    if (text.matches("String_Node_Str")) {
      text=text.replaceAll("String_Node_Str" + "String_Node_Str","String_Node_Str");
      res.setPendingFees(text);
    }
    if (text.matches("String_Node_Str")) {
      text=text.replaceAll("String_Node_Str","String_Node_Str");
      res.setValidUntil(text);
    }
 else     if (text.matches("String_Node_Str")) {
      text=text.replaceAll("String_Node_Str","String_Node_Str");
      res.setValidUntil(text);
    }
  }
  res.setLent(media);
  res.setReservations(reservations);
  return res;
}