Program: 99152
Project: 99152
Buggy source:
public String perform(HttpServletRequest request){
  int curStop=0;
  List<String> errors=new ArrayList<String>();
  request.setAttribute("String_Node_Str",errors);
  List<FeedEntry> nearReports=new ArrayList<FeedEntry>();
  request.setAttribute("String_Node_Str",nearReports);
  request.setAttribute("String_Node_Str",curStop);
  try {
    String routeIDStr=request.getParameter("String_Node_Str");
    int routeID=1;
    if (routeIDStr != null) {
      routeID=Integer.parseInt(routeIDStr);
    }
    request.setAttribute("String_Node_Str",routeID);
    List<Stop> stopList=new ArrayList<Stop>();
    request.setAttribute("String_Node_Str",stopList);
    Route[] routeList=routeDAO.getRoutes();
    request.setAttribute("String_Node_Str",routeList);
    System.out.println(routeList.length);
    if (routeList != null && routeList.length > 0) {
      RouteStop[] rsList=routeStopDAO.readByBID(routeID);
      for (      RouteStop rs : rsList) {
        stopList.add(stopDAO.read(rs.getSid()));
      }
    }
    if (request.getParameterMap().containsKey("String_Node_Str") && request.getParameterMap().containsKey("String_Node_Str")) {
      int stopID=Integer.parseInt(request.getParameter("String_Node_Str"));
      Stop s=stopDAO.read(stopID);
      Report[] near=reportDAO.readByDistance(routeID,s.getLatitude(),s.getLongitude(),MAX_DIST);
      for (      Report r : near) {
        nearReports.add(new FeedEntry(userDAO.read(r.getUid()),r,routeDAO.read(r.getBid())));
      }
      curStop=stopID;
    }
 else     if (request.getParameterMap().containsKey("String_Node_Str") && request.getParameterMap().size() == 1) {
    }
 else {
      LookupForm form=formBeanFactory.create(request);
      request.setAttribute("String_Node_Str",form);
      if (!form.isPresent()) {
        return "String_Node_Str";
      }
      RouteStop[] rsList=routeStopDAO.readByBID(routeID);
      float minDist=Float.MAX_VALUE;
      int minStopID=1;
      for (      RouteStop rs : rsList) {
        Stop s=stopDAO.read(rs.getSid());
        float dist=ReportDAO.distFrom(s.getLatitude(),s.getLongitude(),Float.parseFloat(form.getGeolat()),Float.parseFloat(form.getGeolong()));
        if (minDist > dist) {
          minDist=dist;
          minStopID=s.getId();
        }
      }
      Stop s=stopDAO.read(minStopID);
      curStop=s.getId();
      Report[] near=reportDAO.readByDistance(routeID,s.getLatitude(),s.getLongitude(),MAX_DIST);
      for (      Report r : near) {
        nearReports.add(new FeedEntry(userDAO.read(r.getUid()),r,routeDAO.read(r.getBid())));
      }
    }
    request.setAttribute("String_Node_Str",curStop);
    Collections.sort(nearReports,new Comparator<FeedEntry>(){
      public int compare(      FeedEntry item1,      FeedEntry item2){
        return item2.report.getTimestamp().compareTo(item1.report.getTimestamp());
      }
    }
);
    return ("String_Node_Str");
  }
 catch (  RollbackException e) {
    errors.add(e.getMessage());
    return "String_Node_Str";
  }
catch (  FormBeanException e) {
    errors.add(e.getMessage());
    return "String_Node_Str";
  }
}

Fixed version (ground truth):
public String perform(HttpServletRequest request){
  int curStop=0;
  List<String> errors=new ArrayList<String>();
  request.setAttribute("String_Node_Str",errors);
  List<FeedEntry> nearReports=new ArrayList<FeedEntry>();
  request.setAttribute("String_Node_Str",nearReports);
  request.setAttribute("String_Node_Str",curStop);
  try {
    String routeIDStr=request.getParameter("String_Node_Str");
    int routeID=1;
    if (routeIDStr != null) {
      routeID=Integer.parseInt(routeIDStr);
    }
    request.setAttribute("String_Node_Str",routeID);
    List<Stop> stopList=new ArrayList<Stop>();
    request.setAttribute("String_Node_Str",stopList);
    Route[] routeList=routeDAO.getRoutes();
    request.setAttribute("String_Node_Str",routeList);
    if (routeList != null && routeList.length > 0) {
      RouteStop[] rsList=routeStopDAO.readByBID(routeID);
      for (      RouteStop rs : rsList) {
        stopList.add(stopDAO.read(rs.getSid()));
      }
    }
    if (request.getParameterMap().containsKey("String_Node_Str") && request.getParameterMap().containsKey("String_Node_Str")) {
      int stopID=Integer.parseInt(request.getParameter("String_Node_Str"));
      Stop s=stopDAO.read(stopID);
      Report[] near=reportDAO.readByDistance(routeID,s.getLatitude(),s.getLongitude(),MAX_DIST);
      for (      Report r : near) {
        nearReports.add(new FeedEntry(userDAO.read(r.getUid()),r,routeDAO.read(r.getBid())));
      }
      curStop=stopID;
    }
 else     if (request.getParameterMap().containsKey("String_Node_Str") && request.getParameterMap().size() == 1) {
    }
 else {
      LookupForm form=formBeanFactory.create(request);
      request.setAttribute("String_Node_Str",form);
      if (!form.isPresent()) {
        return "String_Node_Str";
      }
      RouteStop[] rsList=routeStopDAO.readByBID(routeID);
      float minDist=Float.MAX_VALUE;
      int minStopID=1;
      for (      RouteStop rs : rsList) {
        Stop s=stopDAO.read(rs.getSid());
        float dist=ReportDAO.distFrom(s.getLatitude(),s.getLongitude(),Float.parseFloat(form.getGeolat()),Float.parseFloat(form.getGeolong()));
        if (minDist > dist) {
          minDist=dist;
          minStopID=s.getId();
        }
      }
      Stop s=stopDAO.read(minStopID);
      curStop=s.getId();
      Report[] near=reportDAO.readByDistance(routeID,s.getLatitude(),s.getLongitude(),MAX_DIST);
      for (      Report r : near) {
        nearReports.add(new FeedEntry(userDAO.read(r.getUid()),r,routeDAO.read(r.getBid())));
      }
    }
    request.setAttribute("String_Node_Str",curStop);
    Collections.sort(nearReports,new Comparator<FeedEntry>(){
      public int compare(      FeedEntry item1,      FeedEntry item2){
        return item2.report.getTimestamp().compareTo(item1.report.getTimestamp());
      }
    }
);
    return ("String_Node_Str");
  }
 catch (  RollbackException e) {
    errors.add(e.getMessage());
    return "String_Node_Str";
  }
catch (  FormBeanException e) {
    errors.add(e.getMessage());
    return "String_Node_Str";
  }
}