Program: 155436
Project: 155436
Buggy source:
@Override public Form createForm(HttpServletRequest request,ApplicationContext appContext) throws TransactionException {
  ItemManager im=appContext.getItemManager();
  DivisionOfficeManager dom=appContext.getDivisionOfficeManager();
  PersonManager pm=appContext.getPersonManager();
  PR pr=new PR();
  String divisionOfficeId=request.getParameter("String_Node_Str");
  if (divisionOfficeId != null)   pr.setDivisionOffice(dom.getDivisionOffice(Integer.parseInt(divisionOfficeId)));
  pr.setPrNumber(request.getParameter("String_Node_Str"));
  pr.setPrDate(request.getParameter("String_Node_Str"));
  pr.setSaiNumber(request.getParameter("String_Node_Str"));
  pr.setSaiDate(request.getParameter("String_Node_Str"));
  pr.setAlobsNumber(request.getParameter("String_Node_Str"));
  pr.setAlobsDate(request.getParameter("String_Node_Str"));
  pr.setPurpose(request.getParameter("String_Node_Str"));
  String reqId=request.getParameter("String_Node_Str");
  if (reqId != null)   pr.setRequestedBy(pm.getEmployee(Integer.parseInt(reqId)));
  String aprid=request.getParameter("String_Node_Str");
  if (aprid != null)   pr.setApprovedBy(pm.getEmployee(Integer.parseInt(aprid)));
  String[] quantities=request.getParameterValues("String_Node_Str");
  String[] estUnitCost=request.getParameterValues("String_Node_Str");
  String[] items=request.getParameterValues("String_Node_Str");
  if (items != null)   for (int i=0; i < items.length; i++) {
    String q=null;
    String eUC=null;
    if (quantities != null)     q=quantities[i];
    if (estUnitCost != null)     eUC=estUnitCost[i];
    if (q == null)     q="String_Node_Str";
    if (eUC == null)     eUC="String_Node_Str";
    PRLine line=new PRLine();
    line.setQuantity(Integer.parseInt(q));
    line.setItem(im.getItem(Integer.parseInt(items[i])));
    line.setEstimatedUnitCost(Long.parseLong(eUC));
    pr.addLine(line);
  }
  return pr;
}

Fixed version (ground truth):
@Override public Form createForm(HttpServletRequest request,ApplicationContext appContext) throws TransactionException {
  ItemManager im=appContext.getItemManager();
  DivisionOfficeManager dom=appContext.getDivisionOfficeManager();
  PersonManager pm=appContext.getPersonManager();
  PR pr=new PR();
  String divisionOfficeId=request.getParameter("String_Node_Str");
  if (divisionOfficeId != null)   pr.setDivisionOffice(dom.getDivisionOffice(Integer.parseInt(divisionOfficeId)));
  pr.setPrNumber(request.getParameter("String_Node_Str"));
  pr.setPrDate(request.getParameter("String_Node_Str"));
  pr.setSaiNumber(request.getParameter("String_Node_Str"));
  pr.setSaiDate(request.getParameter("String_Node_Str"));
  pr.setAlobsNumber(request.getParameter("String_Node_Str"));
  pr.setAlobsDate(request.getParameter("String_Node_Str"));
  pr.setPurpose(request.getParameter("String_Node_Str"));
  String reqId=request.getParameter("String_Node_Str");
  if (reqId != null)   pr.setRequestedBy(pm.getEmployee(Integer.parseInt(reqId)));
  String aprid=request.getParameter("String_Node_Str");
  if (aprid != null)   pr.setApprovedBy(pm.getEmployee(Integer.parseInt(aprid)));
  String[] quantities=request.getParameterValues("String_Node_Str");
  String[] estUnitCost=request.getParameterValues("String_Node_Str");
  String[] items=request.getParameterValues("String_Node_Str");
  if (items != null)   for (int i=0; i < items.length; i++) {
    String q=null;
    String eUC=null;
    if (quantities != null)     q=quantities[i];
    if (estUnitCost != null)     eUC=estUnitCost[i];
    if (q == null)     q="String_Node_Str";
    if (eUC == null)     eUC="String_Node_Str";
    PRLine line=new PRLine();
    try {
      line.setQuantity(Integer.parseInt(q));
    }
 catch (    Exception e) {
      line.setQuantity(0);
    }
    line.setItem(im.getItem(Integer.parseInt(items[i])));
    try {
      line.setEstimatedUnitCost(Long.parseLong(eUC));
    }
 catch (    Exception e) {
      line.setEstimatedUnitCost(-1);
    }
    pr.addLine(line);
  }
  return pr;
}