Program: 86211
Project: 86211
Buggy source:
static void parseMediaList(List<Map<String,String>> media,Document doc,StringProvider stringProvider,List<String> renewalCounts) throws OpacErrorException {
  Elements copytrs=doc.select("String_Node_Str");
  SimpleDateFormat sdf=new SimpleDateFormat("String_Node_Str",Locale.GERMAN);
  int trs=copytrs.size();
  if (trs < 1) {
    throw new OpacErrorException(stringProvider.getString(StringProvider.COULD_NOT_LOAD_ACCOUNT));
  }
  assert(trs > 0);
  for (int i=0; i < trs; i++) {
    Element tr=copytrs.get(i);
    if (tr.select("String_Node_Str").size() > 0) {
      Map<String,String> e=new HashMap<>();
      if (tr.select("String_Node_Str").size() > 0) {
        e.put(AccountData.KEY_LENT_LINK,tr.select("String_Node_Str").attr("String_Node_Str"));
      }
 else {
        e.put(AccountData.KEY_LENT_RENEWABLE,"String_Node_Str");
      }
      Elements datatrs=tr.select("String_Node_Str");
      e.put(AccountData.KEY_LENT_TITLE,datatrs.get(0).text());
      List<TextNode> textNodes=datatrs.get(1).select("String_Node_Str").first().textNodes();
      List<TextNode> nodes=new ArrayList<>();
      Elements titles=datatrs.get(1).select("String_Node_Str");
      for (      TextNode node : textNodes) {
        if (!node.text().equals("String_Node_Str")) {
          nodes.add(node);
        }
      }
      assert(nodes.size() == titles.size());
      for (int j=0; j < nodes.size(); j++) {
        String title=titles.get(j).text();
        String value=nodes.get(j).text().trim().replace("String_Node_Str","String_Node_Str");
        if (title.contains("String_Node_Str") || title.contains("String_Node_Str") || title.contains("String_Node_Str")) {
        }
 else         if (title.contains("String_Node_Str") || title.contains("String_Node_Str") || title.contains("String_Node_Str")) {
          e.put(AccountData.KEY_LENT_STATUS,value);
        }
 else         if (title.contains("String_Node_Str") || title.contains("String_Node_Str") || title.contains("String_Node_Str")|| title.contains("String_Node_Str")) {
          e.put(AccountData.KEY_LENT_DEADLINE,value);
          try {
            e.put(AccountData.KEY_LENT_DEADLINE_TIMESTAMP,String.valueOf(sdf.parse(value).getTime()));
          }
 catch (          ParseException e1) {
            e1.printStackTrace();
          }
        }
 else         if (title.contains("String_Node_Str") || title.contains("String_Node_Str") || title.contains("String_Node_Str")|| title.contains("String_Node_Str")) {
        }
      }
      media.add(e);
    }
 else {
      String prolongCount="String_Node_Str";
      if (renewalCounts.size() == trs && renewalCounts.get(i) != null) {
        prolongCount=renewalCounts.get(i);
      }
      String reminderCount=tr.child(13).text().trim();
      if (reminderCount.contains("String_Node_Str") && reminderCount.contains("String_Node_Str") && reminderCount.indexOf("String_Node_Str") < reminderCount.indexOf("String_Node_Str")) {
        reminderCount=reminderCount.substring(reminderCount.indexOf("String_Node_Str") + 1,reminderCount.indexOf("String_Node_Str"));
      }
 else {
        reminderCount="String_Node_Str";
      }
      Map<String,String> e=new HashMap<>();
      if (tr.child(4).text().trim().length() < 5 && tr.child(5).text().trim().length() > 4) {
        e.put(AccountData.KEY_LENT_TITLE,tr.child(5).text().trim());
      }
 else {
        e.put(AccountData.KEY_LENT_TITLE,tr.child(4).text().trim());
      }
      String status=tr.child(13).text().trim();
      if (!reminderCount.equals("String_Node_Str") && !reminderCount.equals("String_Node_Str")) {
        if (!status.equals("String_Node_Str"))         status+="String_Node_Str";
        status+=reminderCount + "String_Node_Str" + stringProvider.getString(StringProvider.REMINDERS)+ "String_Node_Str";
      }
      if (!status.equals("String_Node_Str"))       status+="String_Node_Str";
      status+=prolongCount + "String_Node_Str" + stringProvider.getString(StringProvider.PROLONGED_ABBR);
      e.put(AccountData.KEY_LENT_STATUS,status);
      e.put(AccountData.KEY_LENT_DEADLINE,tr.child(21).text().trim());
      try {
        e.put(AccountData.KEY_LENT_DEADLINE_TIMESTAMP,String.valueOf(sdf.parse(e.get(AccountData.KEY_LENT_DEADLINE)).getTime()));
      }
 catch (      ParseException e1) {
        e1.printStackTrace();
      }
      if (tr.child(1).select("String_Node_Str").size() > 0) {
        e.put(AccountData.KEY_LENT_LINK,tr.child(1).select("String_Node_Str").attr("String_Node_Str"));
      }
      media.add(e);
    }
  }
  assert(media.size() == trs - 1);
}

Fixed version (ground truth):
static void parseMediaList(List<Map<String,String>> media,Document doc,StringProvider stringProvider,List<String> renewalCounts) throws OpacErrorException {
  Elements copytrs=doc.select("String_Node_Str");
  SimpleDateFormat sdf=new SimpleDateFormat("String_Node_Str",Locale.GERMAN);
  int trs=copytrs.size();
  if (trs < 1) {
    throw new OpacErrorException(stringProvider.getString(StringProvider.COULD_NOT_LOAD_ACCOUNT));
  }
  assert(trs > 0);
  for (int i=0; i < trs; i++) {
    Element tr=copytrs.get(i);
    if (tr.select("String_Node_Str").size() > 0) {
      Map<String,String> e=new HashMap<>();
      if (tr.select("String_Node_Str").size() > 0) {
        e.put(AccountData.KEY_LENT_LINK,tr.select("String_Node_Str").attr("String_Node_Str"));
      }
 else {
        e.put(AccountData.KEY_LENT_RENEWABLE,"String_Node_Str");
      }
      Elements datatrs=tr.select("String_Node_Str");
      e.put(AccountData.KEY_LENT_TITLE,datatrs.get(0).text());
      List<TextNode> textNodes=datatrs.get(1).select("String_Node_Str").first().textNodes();
      List<TextNode> nodes=new ArrayList<>();
      Elements titles=datatrs.get(1).select("String_Node_Str");
      for (      TextNode node : textNodes) {
        if (!node.text().equals("String_Node_Str")) {
          nodes.add(node);
        }
      }
      assert(nodes.size() == titles.size());
      for (int j=0; j < nodes.size(); j++) {
        String title=titles.get(j).text();
        String value=nodes.get(j).text().trim().replace("String_Node_Str","String_Node_Str");
        if (title.contains("String_Node_Str") || title.contains("String_Node_Str") || title.contains("String_Node_Str")) {
        }
 else         if (title.contains("String_Node_Str") || title.contains("String_Node_Str") || title.contains("String_Node_Str")) {
          e.put(AccountData.KEY_LENT_STATUS,value);
        }
 else         if (title.contains("String_Node_Str") || title.contains("String_Node_Str") || title.contains("String_Node_Str")|| title.contains("String_Node_Str")) {
          e.put(AccountData.KEY_LENT_DEADLINE,value);
          try {
            e.put(AccountData.KEY_LENT_DEADLINE_TIMESTAMP,String.valueOf(sdf.parse(value).getTime()));
          }
 catch (          ParseException e1) {
            e1.printStackTrace();
          }
        }
 else         if (title.contains("String_Node_Str") || title.contains("String_Node_Str") || title.contains("String_Node_Str")|| title.contains("String_Node_Str")) {
        }
      }
      media.add(e);
    }
 else {
      String prolongCount="String_Node_Str";
      if (renewalCounts.size() == trs && renewalCounts.get(i) != null) {
        prolongCount=renewalCounts.get(i);
      }
      String reminderCount=tr.child(13).text().trim();
      if (reminderCount.contains("String_Node_Str") && reminderCount.contains("String_Node_Str") && reminderCount.indexOf("String_Node_Str") < reminderCount.indexOf("String_Node_Str")) {
        reminderCount=reminderCount.substring(reminderCount.indexOf("String_Node_Str") + 1,reminderCount.indexOf("String_Node_Str"));
      }
 else {
        reminderCount="String_Node_Str";
      }
      Map<String,String> e=new HashMap<>();
      if (tr.child(4).text().trim().length() < 5 && tr.child(5).text().trim().length() > 4) {
        e.put(AccountData.KEY_LENT_TITLE,tr.child(5).text().trim());
      }
 else {
        e.put(AccountData.KEY_LENT_TITLE,tr.child(4).text().trim());
      }
      String status=tr.child(13).text().trim();
      if (!reminderCount.equals("String_Node_Str") && !reminderCount.equals("String_Node_Str")) {
        if (!status.equals("String_Node_Str"))         status+="String_Node_Str";
        status+=reminderCount + "String_Node_Str" + stringProvider.getString(StringProvider.REMINDERS)+ "String_Node_Str";
      }
      if (!status.equals("String_Node_Str"))       status+="String_Node_Str";
      status+=prolongCount + "String_Node_Str" + stringProvider.getString(StringProvider.PROLONGED_ABBR);
      e.put(AccountData.KEY_LENT_STATUS,status);
      e.put(AccountData.KEY_LENT_DEADLINE,tr.child(21).text().trim());
      try {
        e.put(AccountData.KEY_LENT_DEADLINE_TIMESTAMP,String.valueOf(sdf.parse(e.get(AccountData.KEY_LENT_DEADLINE)).getTime()));
      }
 catch (      ParseException e1) {
        e1.printStackTrace();
      }
      if (tr.child(1).select("String_Node_Str").size() > 0) {
        e.put(AccountData.KEY_LENT_LINK,tr.child(1).select("String_Node_Str").attr("String_Node_Str"));
      }
      media.add(e);
    }
  }
  assert(media.size() == trs);
}