Program: 63005
Project: 63005
Buggy source:
@Test public void testEditSubmissions() throws Exception {
  ______TS("String_Node_Str");
  restoreTypicalDataInDatastore();
  loginAsAdmin("String_Node_Str");
  ArrayList<SubmissionData> submissionContainer=new ArrayList<SubmissionData>();
  logic.editSubmissions(submissionContainer);
  SubmissionData sub1=dataBundle.submissions.get("String_Node_Str");
  SubmissionData sub2=dataBundle.submissions.get("String_Node_Str");
  alterSubmission(sub1);
  submissionContainer.add(sub1);
  logic.editSubmissions(submissionContainer);
  verifyPresentInDatastore(sub1);
  verifyPresentInDatastore(sub2);
  alterSubmission(sub1);
  alterSubmission(sub2);
  submissionContainer=new ArrayList<SubmissionData>();
  submissionContainer.add(sub1);
  submissionContainer.add(sub2);
  logic.editSubmissions(submissionContainer);
  verifyPresentInDatastore(sub1);
  verifyPresentInDatastore(sub2);
  ______TS("String_Node_Str");
  try {
    logic.editSubmissions(null);
    fail();
  }
 catch (  NullPointerException e) {
    assertContains("String_Node_Str",e.getMessage().toLowerCase());
  }
  ______TS("String_Node_Str");
  ______TS("String_Node_Str");
  restoreTypicalDataInDatastore();
  String methodName="String_Node_Str";
  Class<?>[] paramTypes=new Class<?>[]{List.class};
  List<SubmissionData> submissions=new ArrayList<SubmissionData>();
  SubmissionData s=new SubmissionData();
  s.course="String_Node_Str";
  s.evaluation="String_Node_Str";
  s.reviewer="String_Node_Str";
  submissions.add(s);
  Object[] params=new Object[]{submissions};
  loginAsAdmin("String_Node_Str");
  EvaluationData evaluation=logic.getEvaluation(s.course,s.evaluation);
  evaluation.startTime=Common.getDateOffsetToCurrentTime(1);
  evaluation.endTime=Common.getDateOffsetToCurrentTime(2);
  evaluation.activated=false;
  assertEquals(EvalStatus.AWAITING,evaluation.getStatus());
  logic.editEvaluation(evaluation);
  logoutUser();
  verifyCannotAccess(USER_TYPE_NOT_LOGGED_IN,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_UNREGISTERED,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_STUDENT,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_STUDENT,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_COORD,methodName,"String_Node_Str",paramTypes,params);
  verifyCanAccess(USER_TYPE_COORD,methodName,"String_Node_Str",paramTypes,params);
}

Fixed version (ground truth):
@Test public void testEditSubmissions() throws Exception {
  ______TS("String_Node_Str");
  restoreTypicalDataInDatastore();
  loginAsAdmin("String_Node_Str");
  ArrayList<SubmissionData> submissionContainer=new ArrayList<SubmissionData>();
  logic.editSubmissions(submissionContainer);
  SubmissionData sub1=dataBundle.submissions.get("String_Node_Str");
  SubmissionData sub2=dataBundle.submissions.get("String_Node_Str");
  alterSubmission(sub1);
  submissionContainer.add(sub1);
  logic.editSubmissions(submissionContainer);
  verifyPresentInDatastore(sub1);
  verifyPresentInDatastore(sub2);
  alterSubmission(sub1);
  alterSubmission(sub2);
  submissionContainer=new ArrayList<SubmissionData>();
  submissionContainer.add(sub1);
  submissionContainer.add(sub2);
  logic.editSubmissions(submissionContainer);
  verifyPresentInDatastore(sub1);
  verifyPresentInDatastore(sub2);
  ______TS("String_Node_Str");
  try {
    logic.editSubmissions(null);
    fail();
  }
 catch (  NullPointerException e) {
    assertContains("String_Node_Str",e.getMessage().toLowerCase());
  }
  ______TS("String_Node_Str");
  ______TS("String_Node_Str");
  restoreTypicalDataInDatastore();
  String methodName="String_Node_Str";
  Class<?>[] paramTypes=new Class<?>[]{List.class};
  List<SubmissionData> submissions=new ArrayList<SubmissionData>();
  SubmissionData s=new SubmissionData();
  s.course="String_Node_Str";
  s.evaluation="String_Node_Str";
  s.reviewer="String_Node_Str";
  submissions.add(s);
  Object[] params=new Object[]{submissions};
  loginAsAdmin("String_Node_Str");
  EvaluationData evaluation=logic.getEvaluation(s.course,s.evaluation);
  evaluation.startTime=Common.getDateOffsetToCurrentTime(1);
  evaluation.endTime=Common.getDateOffsetToCurrentTime(2);
  evaluation.activated=false;
  assertEquals(EvalStatus.AWAITING,evaluation.getStatus());
  BackDoorLogic backDoorLogic=new BackDoorLogic();
  backDoorLogic.editEvaluation(evaluation);
  logoutUser();
  verifyCannotAccess(USER_TYPE_NOT_LOGGED_IN,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_UNREGISTERED,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_STUDENT,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_STUDENT,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_COORD,methodName,"String_Node_Str",paramTypes,params);
  verifyCanAccess(USER_TYPE_COORD,methodName,"String_Node_Str",paramTypes,params);
}