Program: 63016
Project: 63016
Buggy source:
@Override protected void doAction(HttpServletRequest req,CoordEvalEditHelper helper) throws EntityDoesNotExistException {
  String courseID=req.getParameter(Common.PARAM_COURSE_ID);
  String evalName=req.getParameter(Common.PARAM_EVALUATION_NAME);
  if (courseID == null && evalName == null) {
    helper.redirectUrl=Common.PAGE_COORD_EVAL;
    return;
  }
  CourseData course=helper.server.getCourse(courseID);
  if (course != null && !course.coord.equals(helper.userId)) {
    helper.statusMessage="String_Node_Str" + Helper.escapeForHTML(evalName) + "String_Node_Str"+ courseID;
    helper.redirectUrl=Common.PAGE_COORD_EVAL;
    return;
  }
  boolean isSubmit=false;
  EvaluationData newEval=new EvaluationData();
  newEval.course=courseID;
  newEval.name=evalName;
  newEval.p2pEnabled="String_Node_Str".equalsIgnoreCase(req.getParameter(Common.PARAM_EVALUATION_COMMENTSENABLED));
  String startDate=req.getParameter(Common.PARAM_EVALUATION_START);
  String paramStartTime=req.getParameter(Common.PARAM_EVALUATION_STARTTIME);
  int startTime=0;
  if (paramStartTime != null) {
    isSubmit=true;
    startTime=Integer.parseInt(paramStartTime) * 100;
  }
  newEval.startTime=Common.convertToDate(startDate,startTime);
  if (newEval.startTime != null)   isSubmit=true;
  String endDate=req.getParameter(Common.PARAM_EVALUATION_DEADLINE);
  if (endDate != null)   isSubmit=true;
  String paramEndTime=req.getParameter(Common.PARAM_EVALUATION_DEADLINETIME);
  int endTime=0;
  if (paramEndTime != null) {
    isSubmit=true;
    endTime=Integer.parseInt(paramEndTime) * 100;
  }
  newEval.endTime=Common.convertToDate(endDate,endTime);
  if (newEval.endTime != null)   isSubmit=true;
  String paramTimeZone=req.getParameter(Common.PARAM_EVALUATION_TIMEZONE);
  if (paramTimeZone != null) {
    isSubmit=true;
    newEval.timeZone=Double.parseDouble(paramTimeZone);
  }
  String paramGracePeriod=req.getParameter(Common.PARAM_EVALUATION_GRACEPERIOD);
  if (paramGracePeriod != null) {
    isSubmit=true;
    newEval.gracePeriod=Integer.parseInt(paramGracePeriod);
  }
  newEval.instructions=req.getParameter(Common.PARAM_EVALUATION_INSTRUCTIONS);
  if (newEval.instructions != null) {
    isSubmit=true;
  }
  if (isSubmit) {
    helper.submittedEval=newEval;
  }
 else {
    helper.submittedEval=helper.server.getEvaluation(courseID,evalName);
    if (helper.submittedEval == null) {
      helper.redirectUrl=Common.PAGE_COORD_EVAL;
      return;
    }
  }
  try {
    if (isSubmit) {
      helper.server.editEvaluation(newEval);
      helper.statusMessage=Common.MESSAGE_EVALUATION_EDITED;
      helper.redirectUrl=Common.PAGE_COORD_EVAL;
    }
  }
 catch (  InvalidParametersException e) {
    helper.statusMessage=e.getMessage();
    helper.error=true;
  }
}

Fixed version (ground truth):
@Override protected void doAction(HttpServletRequest req,CoordEvalEditHelper helper) throws EntityDoesNotExistException {
  EvaluationData newEval=CoordEvalServlet.extractEvaluationData(req);
  if (newEval.course == null && newEval.name == null) {
    helper.redirectUrl=Common.PAGE_COORD_EVAL;
    return;
  }
  CourseData course=helper.server.getCourse(newEval.course);
  if (course != null && !course.coord.equals(helper.userId)) {
    helper.statusMessage="String_Node_Str" + Helper.escapeForHTML(newEval.name) + "String_Node_Str"+ newEval.course;
    helper.redirectUrl=Common.PAGE_COORD_EVAL;
    return;
  }
  boolean isSubmit=newEval.startTime != null || newEval.endTime != null || newEval.instructions != null;
  if (isSubmit) {
    helper.submittedEval=newEval;
    try {
      helper.server.editEvaluation(newEval);
      helper.statusMessage=Common.MESSAGE_EVALUATION_EDITED;
      helper.redirectUrl=Common.PAGE_COORD_EVAL;
    }
 catch (    InvalidParametersException e) {
      helper.statusMessage=e.getMessage();
      helper.error=true;
    }
  }
 else {
    helper.submittedEval=helper.server.getEvaluation(newEval.course,newEval.name);
    if (helper.submittedEval == null) {
      helper.redirectUrl=Common.PAGE_COORD_EVAL;
      return;
    }
  }
}