Program: 86139
Project: 86139
Buggy source:
@Override public ReservationResult reservation(DetailledItem item,Account account,int useraction,String selection) throws IOException {
  Document doc;
  List<NameValuePair> nvpairs;
  ReservationResult res=null;
  if (selection != null && selection.equals("String_Node_Str")) {
    selection=null;
  }
  if (s_pageform == null) {
    return new ReservationResult(Status.ERROR);
  }
  nvpairs=s_pageform;
  int i=0;
  List<Integer> indexes=new ArrayList<>();
  for (  NameValuePair np : nvpairs) {
    if (np.getName().contains("String_Node_Str") || np.getName().contains("String_Node_Str")) {
      indexes.add(i);
    }
    i++;
  }
  for (int j=indexes.size() - 1; j >= 0; j--) {
    nvpairs.remove((int)indexes.get(j));
  }
  nvpairs.add(new BasicNameValuePair("String_Node_Str","String_Node_Str" + item.getReservation_info()));
  htmlPost(opac_url + "String_Node_Str" + s_sid,nvpairs);
  doc=htmlPost(opac_url + "String_Node_Str" + s_sid,nvpairs);
  List<NameValuePair> form=new ArrayList<>();
  for (  Element input : doc.select("String_Node_Str")) {
    if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && (!"String_Node_Str".equals(input.attr("String_Node_Str")) || input.val().contains("String_Node_Str") || input.val().contains("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))&& !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
      form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
    }
  }
  doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
  if (doc.select("String_Node_Str").size() > 0) {
    String msg=doc.select("String_Node_Str").text().trim();
    res=new ReservationResult(MultiStepResult.Status.ERROR,msg);
    form=new ArrayList<>();
    for (    Element input : doc.select("String_Node_Str")) {
      if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
        form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
      }
    }
    doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
  }
 else {
    try {
      doc=handleLoginForm(doc,account);
    }
 catch (    OpacErrorException e1) {
      return new ReservationResult(MultiStepResult.Status.ERROR,e1.getMessage());
    }
    if (useraction == 0 && selection == null) {
      res=new ReservationResult(MultiStepResult.Status.CONFIRMATION_NEEDED);
      List<String[]> details=new ArrayList<>();
      details.add(new String[]{doc.select("String_Node_Str").text()});
      res.setDetails(details);
    }
 else     if (doc.select("String_Node_Str").size() > 0 && (selection == null || "String_Node_Str".equals(selection))) {
      List<Map<String,String>> sel=new ArrayList<>();
      for (      Element opt : doc.select("String_Node_Str")) {
        if (opt.text().trim().length() > 0) {
          Map<String,String> selopt=new HashMap<>();
          selopt.put("String_Node_Str",opt.val());
          selopt.put("String_Node_Str",opt.text());
          sel.add(selopt);
        }
      }
      res=new ReservationResult(MultiStepResult.Status.SELECTION_NEEDED,doc.select("String_Node_Str").first().parent().select("String_Node_Str").text());
      res.setSelection(sel);
    }
 else     if (doc.select("String_Node_Str").size() > 0 && (selection == null || !selection.contains("String_Node_Str"))) {
      List<Map<String,String>> sel=new ArrayList<>();
      for (      Element opt : doc.select("String_Node_Str")) {
        if (opt.text().trim().length() > 0) {
          Map<String,String> selopt=new HashMap<>();
          selopt.put("String_Node_Str",opt.text());
          if (selection != null) {
            selopt.put("String_Node_Str",opt.val() + "String_Node_Str" + selection);
          }
 else {
            selopt.put("String_Node_Str",opt.val());
          }
          sel.add(selopt);
        }
      }
      res=new ReservationResult(MultiStepResult.Status.SELECTION_NEEDED,doc.select("String_Node_Str").first().parent().select("String_Node_Str").text());
      res.setSelection(sel);
    }
 else     if (selection != null || doc.select("String_Node_Str").size() == 0) {
      if (doc.select("String_Node_Str").size() > 0 && selection != null) {
        if (selection.contains("String_Node_Str")) {
          doc.select("String_Node_Str").attr("String_Node_Str",selection.split("String_Node_Str")[1]);
        }
 else {
          doc.select("String_Node_Str").attr("String_Node_Str",selection);
        }
      }
      if (doc.select("String_Node_Str").size() > 0 && selection != null) {
        if (selection.contains("String_Node_Str")) {
          doc.select("String_Node_Str").attr("String_Node_Str",selection.split("String_Node_Str")[0]);
        }
 else {
          doc.select("String_Node_Str").attr("String_Node_Str",selection);
        }
      }
      if (doc.select("String_Node_Str").size() > 0) {
        doc.select("String_Node_Str").attr("String_Node_Str","String_Node_Str");
      }
      if (doc.select("String_Node_Str").size() > 0) {
        String msg=doc.select("String_Node_Str").text().trim();
        form=new ArrayList<>();
        for (        Element input : doc.select("String_Node_Str")) {
          if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
            form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
          }
        }
        doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
        if (!msg.contains("String_Node_Str")) {
          res=new ReservationResult(MultiStepResult.Status.ERROR,msg);
        }
 else {
          res=new ReservationResult(MultiStepResult.Status.OK,msg);
        }
      }
 else {
        form=new ArrayList<>();
        for (        Element input : doc.select("String_Node_Str")) {
          if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))&& !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
            form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
          }
        }
        form.add(new BasicNameValuePair("String_Node_Str","String_Node_Str"));
        res=new ReservationResult(MultiStepResult.Status.OK);
        doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
        if (doc.select("String_Node_Str").attr("String_Node_Str").contains("String_Node_Str")) {
          form=new ArrayList<>();
          for (          Element input : doc.select("String_Node_Str")) {
            if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))&& !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
              form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
            }
          }
          form.add(new BasicNameValuePair("String_Node_Str",doc.select("String_Node_Str").first().attr("String_Node_Str")));
          doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
        }
        if (doc.select("String_Node_Str").size() > 0) {
          String msg=doc.select("String_Node_Str").text().trim();
          form=new ArrayList<>();
          for (          Element input : doc.select("String_Node_Str")) {
            if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
              form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
            }
          }
          doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
          if (!msg.contains("String_Node_Str")) {
            res=new ReservationResult(MultiStepResult.Status.ERROR,msg);
          }
 else {
            res=new ReservationResult(MultiStepResult.Status.OK,msg);
          }
        }
 else         if (doc.select("String_Node_Str").text().contains("String_Node_Str")) {
          String msg=doc.select("String_Node_Str").text().trim();
          form=new ArrayList<>();
          for (          Element input : doc.select("String_Node_Str")) {
            if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
              form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
            }
          }
          doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
          if (!msg.contains("String_Node_Str")) {
            res=new ReservationResult(MultiStepResult.Status.ERROR,msg);
          }
 else {
            res=new ReservationResult(MultiStepResult.Status.OK,msg);
          }
        }
      }
    }
  }
  if (res == null || res.getStatus() == MultiStepResult.Status.SELECTION_NEEDED || res.getStatus() == MultiStepResult.Status.CONFIRMATION_NEEDED) {
    form=new ArrayList<>();
    for (    Element input : doc.select("String_Node_Str")) {
      if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))&& !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
        form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
      }
    }
    Element button=doc.select("String_Node_Str").first();
    form.add(new BasicNameValuePair(button.attr("String_Node_Str"),button.attr("String_Node_Str")));
    doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
  }
  updatePageform(doc);
  try {
    nvpairs=s_pageform;
    nvpairs.add(new BasicNameValuePair("String_Node_Str","String_Node_Str"));
    nvpairs.add(new BasicNameValuePair("String_Node_Str","String_Node_Str"));
    parse_search_wrapped(htmlPost(opac_url + "String_Node_Str" + s_sid,nvpairs),1);
    nvpairs=s_pageform;
    nvpairs.add(new BasicNameValuePair("String_Node_Str","String_Node_Str"));
    nvpairs.add(new BasicNameValuePair("String_Node_Str","String_Node_Str"));
    parse_search_wrapped(htmlPost(opac_url + "String_Node_Str" + s_sid,nvpairs),1);
  }
 catch (  OpacErrorException e) {
    e.printStackTrace();
  }
  return res;
}

Fixed version (ground truth):
@Override public ReservationResult reservation(DetailedItem item,Account account,int useraction,String selection) throws IOException {
  Document doc;
  List<NameValuePair> nvpairs;
  ReservationResult res=null;
  if (selection != null && selection.equals("String_Node_Str")) {
    selection=null;
  }
  if (s_pageform == null) {
    return new ReservationResult(Status.ERROR);
  }
  nvpairs=s_pageform;
  int i=0;
  List<Integer> indexes=new ArrayList<>();
  for (  NameValuePair np : nvpairs) {
    if (np.getName().contains("String_Node_Str") || np.getName().contains("String_Node_Str")) {
      indexes.add(i);
    }
    i++;
  }
  for (int j=indexes.size() - 1; j >= 0; j--) {
    nvpairs.remove((int)indexes.get(j));
  }
  nvpairs.add(new BasicNameValuePair("String_Node_Str","String_Node_Str" + item.getReservation_info()));
  htmlPost(opac_url + "String_Node_Str" + s_sid,nvpairs);
  doc=htmlPost(opac_url + "String_Node_Str" + s_sid,nvpairs);
  List<NameValuePair> form=new ArrayList<>();
  for (  Element input : doc.select("String_Node_Str")) {
    if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && (!"String_Node_Str".equals(input.attr("String_Node_Str")) || input.val().contains("String_Node_Str") || input.val().contains("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))&& !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
      form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
    }
  }
  doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
  if (doc.select("String_Node_Str").size() > 0) {
    String msg=doc.select("String_Node_Str").text().trim();
    res=new ReservationResult(MultiStepResult.Status.ERROR,msg);
    form=new ArrayList<>();
    for (    Element input : doc.select("String_Node_Str")) {
      if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
        form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
      }
    }
    doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
  }
 else {
    try {
      doc=handleLoginForm(doc,account);
    }
 catch (    OpacErrorException e1) {
      return new ReservationResult(MultiStepResult.Status.ERROR,e1.getMessage());
    }
    if (useraction == 0 && selection == null) {
      res=new ReservationResult(MultiStepResult.Status.CONFIRMATION_NEEDED);
      List<String[]> details=new ArrayList<>();
      details.add(new String[]{doc.select("String_Node_Str").text()});
      res.setDetails(details);
    }
 else     if (doc.select("String_Node_Str").size() > 0 && (selection == null || "String_Node_Str".equals(selection))) {
      List<Map<String,String>> sel=new ArrayList<>();
      for (      Element opt : doc.select("String_Node_Str")) {
        if (opt.text().trim().length() > 0) {
          Map<String,String> selopt=new HashMap<>();
          selopt.put("String_Node_Str",opt.val());
          selopt.put("String_Node_Str",opt.text());
          sel.add(selopt);
        }
      }
      res=new ReservationResult(MultiStepResult.Status.SELECTION_NEEDED,doc.select("String_Node_Str").first().parent().select("String_Node_Str").text());
      res.setSelection(sel);
    }
 else     if (doc.select("String_Node_Str").size() > 0 && (selection == null || !selection.contains("String_Node_Str"))) {
      List<Map<String,String>> sel=new ArrayList<>();
      for (      Element opt : doc.select("String_Node_Str")) {
        if (opt.text().trim().length() > 0) {
          Map<String,String> selopt=new HashMap<>();
          selopt.put("String_Node_Str",opt.text());
          if (selection != null) {
            selopt.put("String_Node_Str",opt.val() + "String_Node_Str" + selection);
          }
 else {
            selopt.put("String_Node_Str",opt.val());
          }
          sel.add(selopt);
        }
      }
      res=new ReservationResult(MultiStepResult.Status.SELECTION_NEEDED,doc.select("String_Node_Str").first().parent().select("String_Node_Str").text());
      res.setSelection(sel);
    }
 else     if (selection != null || doc.select("String_Node_Str").size() == 0) {
      if (doc.select("String_Node_Str").size() > 0 && selection != null) {
        if (selection.contains("String_Node_Str")) {
          doc.select("String_Node_Str").attr("String_Node_Str",selection.split("String_Node_Str")[1]);
        }
 else {
          doc.select("String_Node_Str").attr("String_Node_Str",selection);
        }
      }
      if (doc.select("String_Node_Str").size() > 0 && selection != null) {
        if (selection.contains("String_Node_Str")) {
          doc.select("String_Node_Str").attr("String_Node_Str",selection.split("String_Node_Str")[0]);
        }
 else {
          doc.select("String_Node_Str").attr("String_Node_Str",selection);
        }
      }
      if (doc.select("String_Node_Str").size() > 0) {
        doc.select("String_Node_Str").attr("String_Node_Str","String_Node_Str");
      }
      if (doc.select("String_Node_Str").size() > 0) {
        String msg=doc.select("String_Node_Str").text().trim();
        form=new ArrayList<>();
        for (        Element input : doc.select("String_Node_Str")) {
          if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
            form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
          }
        }
        doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
        if (!msg.contains("String_Node_Str")) {
          res=new ReservationResult(MultiStepResult.Status.ERROR,msg);
        }
 else {
          res=new ReservationResult(MultiStepResult.Status.OK,msg);
        }
      }
 else {
        form=new ArrayList<>();
        for (        Element input : doc.select("String_Node_Str")) {
          if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))&& !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
            form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
          }
        }
        form.add(new BasicNameValuePair("String_Node_Str","String_Node_Str"));
        res=new ReservationResult(MultiStepResult.Status.OK);
        doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
        if (doc.select("String_Node_Str").attr("String_Node_Str").contains("String_Node_Str")) {
          form=new ArrayList<>();
          for (          Element input : doc.select("String_Node_Str")) {
            if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))&& !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
              form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
            }
          }
          form.add(new BasicNameValuePair("String_Node_Str",doc.select("String_Node_Str").first().attr("String_Node_Str")));
          doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
        }
        if (doc.select("String_Node_Str").size() > 0) {
          String msg=doc.select("String_Node_Str").text().trim();
          form=new ArrayList<>();
          for (          Element input : doc.select("String_Node_Str")) {
            if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
              form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
            }
          }
          doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
          if (!msg.contains("String_Node_Str")) {
            res=new ReservationResult(MultiStepResult.Status.ERROR,msg);
          }
 else {
            res=new ReservationResult(MultiStepResult.Status.OK,msg);
          }
        }
 else         if (doc.select("String_Node_Str").text().contains("String_Node_Str")) {
          String msg=doc.select("String_Node_Str").text().trim();
          form=new ArrayList<>();
          for (          Element input : doc.select("String_Node_Str")) {
            if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
              form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
            }
          }
          doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
          if (!msg.contains("String_Node_Str")) {
            res=new ReservationResult(MultiStepResult.Status.ERROR,msg);
          }
 else {
            res=new ReservationResult(MultiStepResult.Status.OK,msg);
          }
        }
      }
    }
  }
  if (res == null || res.getStatus() == MultiStepResult.Status.SELECTION_NEEDED || res.getStatus() == MultiStepResult.Status.CONFIRMATION_NEEDED) {
    form=new ArrayList<>();
    for (    Element input : doc.select("String_Node_Str")) {
      if (!"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str")) && !"String_Node_Str".equals(input.attr("String_Node_Str"))&& !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
        form.add(new BasicNameValuePair(input.attr("String_Node_Str"),input.attr("String_Node_Str")));
      }
    }
    Element button=doc.select("String_Node_Str").first();
    form.add(new BasicNameValuePair(button.attr("String_Node_Str"),button.attr("String_Node_Str")));
    doc=htmlPost(opac_url + "String_Node_Str" + s_sid,form);
  }
  updatePageform(doc);
  try {
    nvpairs=s_pageform;
    nvpairs.add(new BasicNameValuePair("String_Node_Str","String_Node_Str"));
    nvpairs.add(new BasicNameValuePair("String_Node_Str","String_Node_Str"));
    parse_search_wrapped(htmlPost(opac_url + "String_Node_Str" + s_sid,nvpairs),1);
    nvpairs=s_pageform;
    nvpairs.add(new BasicNameValuePair("String_Node_Str","String_Node_Str"));
    nvpairs.add(new BasicNameValuePair("String_Node_Str","String_Node_Str"));
    parse_search_wrapped(htmlPost(opac_url + "String_Node_Str" + s_sid,nvpairs),1);
  }
 catch (  OpacErrorException e) {
    e.printStackTrace();
  }
  return res;
}