Program: 86256
Project: 86256
Buggy source:
protected Document handleLoginForm(Document doc,Account account) throws IOException, OpacErrorException {
  if (doc.select("String_Node_Str").size() == 0) {
    return doc;
  }
  doc.select("String_Node_Str").val(account.getPassword());
  List<NameValuePair> form=new ArrayList<NameValuePair>();
  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.attr("String_Node_Str").contains("String_Node_Str")&& !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
      if (input.attr("String_Node_Str").equals("String_Node_Str") || input.attr("String_Node_Str").equals("String_Node_Str") || input.attr("String_Node_Str").equals("String_Node_Str")) {
        input.attr("String_Node_Str",account.getName());
      }
      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();
    form=new ArrayList<NameValuePair>();
    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")) {
      throw new OpacErrorException(msg);
    }
    return doc;
  }
 else {
    return doc;
  }
}

Fixed version (ground truth):
protected Document handleLoginForm(Document doc,Account account) throws IOException, OpacErrorException {
  if (doc.select("String_Node_Str").size() == 0) {
    return doc;
  }
  doc.select("String_Node_Str").val(account.getPassword());
  List<NameValuePair> form=new ArrayList<NameValuePair>();
  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.attr("String_Node_Str").contains("String_Node_Str")&& !input.attr("String_Node_Str").contains("String_Node_Str")&& !"String_Node_Str".equals(input.attr("String_Node_Str"))) {
      if (input.attr("String_Node_Str").equals("String_Node_Str") || input.attr("String_Node_Str").equals("String_Node_Str") || input.attr("String_Node_Str").equals("String_Node_Str")) {
        input.attr("String_Node_Str",account.getName());
      }
      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();
    form=new ArrayList<NameValuePair>();
    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")) {
      throw new OpacErrorException(msg);
    }
    return doc;
  }
 else {
    return doc;
  }
}