Program: 69515
Project: 69515
Buggy source:
private List<StatusDescription> validateInternalConfiguration(CourseEditorEnv cev){
  List<StatusDescription> sdList=new ArrayList<>(5);
  ModuleConfiguration config=getModuleConfiguration();
  boolean hasScoring=config.getBooleanSafe(GTASK_GRADING);
  if (hasScoring) {
    if (!config.getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD) && !config.getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_PASSED_FIELD)) {
      addStatusErrorDescription("String_Node_Str",GTAEditController.PANE_TAB_GRADING,sdList);
    }
  }
  if (GTAType.group.name().equals(config.getStringValue(GTACourseNode.GTASK_TYPE))) {
    List<Long> groupKeys=config.getList(GTACourseNode.GTASK_GROUPS,Long.class);
    List<Long> areaKeys=config.getList(GTACourseNode.GTASK_AREAS,Long.class);
    if (groupKeys.isEmpty() && areaKeys.isEmpty()) {
      addStatusErrorDescription("String_Node_Str",GTAEditController.PANE_TAB_GRADING,sdList);
    }
  }
  if (!config.getBooleanSafe(GTACourseNode.GTASK_ASSIGNMENT) && !config.getBooleanSafe(GTACourseNode.GTASK_SUBMIT) && !config.getBooleanSafe(GTACourseNode.GTASK_REVIEW_AND_CORRECTION)&& !config.getBooleanSafe(GTACourseNode.GTASK_REVISION_PERIOD)&& !config.getBooleanSafe(GTACourseNode.GTASK_SAMPLE_SOLUTION)&& !config.getBooleanSafe(GTACourseNode.GTASK_GRADING)) {
    addStatusErrorDescription("String_Node_Str",GTAEditController.PANE_TAB_WORKLOW,sdList);
  }
  if (cev != null) {
    GTAManager gtaManager=CoreSpringFactory.getImpl(GTAManager.class);
    OLATResource courseOres=cev.getCourseGroupManager().getCourseResource();
    ICourse course=CourseFactory.loadCourse(courseOres);
    if (config.getBooleanSafe(GTACourseNode.GTASK_ASSIGNMENT)) {
      File taskDirectory=gtaManager.getTasksDirectory(course.getCourseEnvironment(),this);
      if (!TaskHelper.hasDocuments(taskDirectory)) {
        addStatusErrorDescription("String_Node_Str",GTAEditController.PANE_TAB_ASSIGNMENT,sdList);
      }
    }
    if (config.getBooleanSafe(GTACourseNode.GTASK_SAMPLE_SOLUTION)) {
      File solutionDirectory=gtaManager.getSolutionsDirectory(course.getCourseEnvironment(),this);
      if (!TaskHelper.hasDocuments(solutionDirectory)) {
        addStatusErrorDescription("String_Node_Str",GTAEditController.PANE_TAB_SOLUTIONS,sdList);
      }
    }
    List<IdentityRef> participants=gtaManager.getDuplicatedMemberships(this);
    if (participants.size() > 0) {
      UserManager um=CoreSpringFactory.getImpl(UserManager.class);
      StringBuilder sb=new StringBuilder();
      for (      IdentityRef participant : participants) {
        String fullname=um.getUserDisplayName(participant.getKey());
        if (sb.length() > 0)         sb.append("String_Node_Str");
        sb.append(fullname);
      }
      String[] params=new String[]{getShortTitle(),sb.toString()};
      StatusDescription sd=new StatusDescription(StatusDescription.WARNING,"String_Node_Str","String_Node_Str",params,PACKAGE_GTA);
      sd.setDescriptionForUnit(getIdent());
      sd.setActivateableViewIdentifier(GTAEditController.PANE_TAB_WORKLOW);
      sdList.add(sd);
    }
  }
  return sdList;
}

Fixed version (ground truth):
private List<StatusDescription> validateInternalConfiguration(CourseEditorEnv cev){
  List<StatusDescription> sdList=new ArrayList<>(5);
  ModuleConfiguration config=getModuleConfiguration();
  boolean hasScoring=config.getBooleanSafe(GTASK_GRADING);
  if (hasScoring) {
    if (!config.getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD) && !config.getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_PASSED_FIELD) && !config.getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_COMMENT_FIELD)) {
      addStatusErrorDescription("String_Node_Str",GTAEditController.PANE_TAB_GRADING,sdList);
    }
  }
  if (GTAType.group.name().equals(config.getStringValue(GTACourseNode.GTASK_TYPE))) {
    List<Long> groupKeys=config.getList(GTACourseNode.GTASK_GROUPS,Long.class);
    List<Long> areaKeys=config.getList(GTACourseNode.GTASK_AREAS,Long.class);
    if (groupKeys.isEmpty() && areaKeys.isEmpty()) {
      addStatusErrorDescription("String_Node_Str",GTAEditController.PANE_TAB_GRADING,sdList);
    }
  }
  if (!config.getBooleanSafe(GTACourseNode.GTASK_ASSIGNMENT) && !config.getBooleanSafe(GTACourseNode.GTASK_SUBMIT) && !config.getBooleanSafe(GTACourseNode.GTASK_REVIEW_AND_CORRECTION)&& !config.getBooleanSafe(GTACourseNode.GTASK_REVISION_PERIOD)&& !config.getBooleanSafe(GTACourseNode.GTASK_SAMPLE_SOLUTION)&& !config.getBooleanSafe(GTACourseNode.GTASK_GRADING)) {
    addStatusErrorDescription("String_Node_Str",GTAEditController.PANE_TAB_WORKLOW,sdList);
  }
  if (cev != null) {
    GTAManager gtaManager=CoreSpringFactory.getImpl(GTAManager.class);
    OLATResource courseOres=cev.getCourseGroupManager().getCourseResource();
    ICourse course=CourseFactory.loadCourse(courseOres);
    if (config.getBooleanSafe(GTACourseNode.GTASK_ASSIGNMENT)) {
      File taskDirectory=gtaManager.getTasksDirectory(course.getCourseEnvironment(),this);
      if (!TaskHelper.hasDocuments(taskDirectory)) {
        addStatusErrorDescription("String_Node_Str",GTAEditController.PANE_TAB_ASSIGNMENT,sdList);
      }
    }
    if (config.getBooleanSafe(GTACourseNode.GTASK_SAMPLE_SOLUTION)) {
      File solutionDirectory=gtaManager.getSolutionsDirectory(course.getCourseEnvironment(),this);
      if (!TaskHelper.hasDocuments(solutionDirectory)) {
        addStatusErrorDescription("String_Node_Str",GTAEditController.PANE_TAB_SOLUTIONS,sdList);
      }
    }
    List<IdentityRef> participants=gtaManager.getDuplicatedMemberships(this);
    if (participants.size() > 0) {
      UserManager um=CoreSpringFactory.getImpl(UserManager.class);
      StringBuilder sb=new StringBuilder();
      for (      IdentityRef participant : participants) {
        String fullname=um.getUserDisplayName(participant.getKey());
        if (sb.length() > 0)         sb.append("String_Node_Str");
        sb.append(fullname);
      }
      String[] params=new String[]{getShortTitle(),sb.toString()};
      StatusDescription sd=new StatusDescription(StatusDescription.WARNING,"String_Node_Str","String_Node_Str",params,PACKAGE_GTA);
      sd.setDescriptionForUnit(getIdent());
      sd.setActivateableViewIdentifier(GTAEditController.PANE_TAB_WORKLOW);
      sdList.add(sd);
    }
  }
  return sdList;
}