Program: 69328
Project: 69328
Buggy source:
@Override protected void event(UserRequest ureq,Controller source,Event event){
  if (source == accessibilityCondCtrl) {
    if (event == Event.CHANGED_EVENT) {
      Condition cond=accessibilityCondCtrl.getCondition();
      gtaNode.setPreConditionAccess(cond);
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
    }
  }
 else   if (workflowCtrl == source) {
    if (event == Event.DONE_EVENT) {
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
      updateEnabledDisabledTabs();
    }
 else     if (event == Event.CANCELLED_EVENT) {
      removeAsListenerAndDispose(workflowCtrl);
      workflowCtrl=new GTAWorkflowEditController(ureq,getWindowControl(),gtaNode,euce.getCourseEditorEnv());
      listenTo(workflowCtrl);
      myTabbedPane.replaceTab(workflowPos,workflowCtrl.getInitialComponent());
    }
  }
 else   if (assignmentCtrl == source) {
    if (event == Event.DONE_EVENT) {
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
    }
 else     if (event == Event.CANCELLED_EVENT) {
      removeAsListenerAndDispose(assignmentCtrl);
      assignmentCtrl=new GTAAssignmentEditController(ureq,getWindowControl(),gtaNode,config,courseEnv,false);
      listenTo(assignmentCtrl);
      myTabbedPane.replaceTab(assignmentPos,assignmentCtrl.getInitialComponent());
    }
  }
 else   if (submissionCtrl == source) {
    if (event == Event.DONE_EVENT) {
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
    }
 else     if (event == Event.CANCELLED_EVENT) {
      removeAsListenerAndDispose(submissionCtrl);
      submissionCtrl=new GTASubmissionEditController(ureq,getWindowControl(),config);
      listenTo(submissionCtrl);
      myTabbedPane.replaceTab(submissionPos,submissionCtrl.getInitialComponent());
    }
  }
 else   if (manualAssessmentCtrl == source) {
    if (event == Event.DONE_EVENT) {
      manualAssessmentCtrl.updateModuleConfiguration(config);
      updateEnabledDisabledTabs();
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
    }
 else     if (event == Event.CANCELLED_EVENT) {
      removeAsListenerAndDispose(manualAssessmentCtrl);
      manualAssessmentCtrl=new MSEditFormController(ureq,getWindowControl(),config);
      listenTo(manualAssessmentCtrl);
      myTabbedPane.replaceTab(gradingPos,manualAssessmentCtrl.getInitialComponent());
    }
  }
 else   if (solutionsCtrl == source) {
    if (event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
    }
  }
 else   if (source == highScoreNodeConfigController) {
    if (event == Event.DONE_EVENT) {
      highScoreNodeConfigController.updateModuleConfiguration(gtaNode.getModuleConfiguration());
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
    }
  }
  super.event(ureq,source,event);
}

Fixed version (ground truth):
@Override protected void event(UserRequest ureq,Controller source,Event event){
  if (source == accessibilityCondCtrl) {
    if (event == Event.CHANGED_EVENT) {
      Condition cond=accessibilityCondCtrl.getCondition();
      gtaNode.setPreConditionAccess(cond);
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
    }
  }
 else   if (workflowCtrl == source) {
    if (event == Event.DONE_EVENT) {
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
      updateEnabledDisabledTabs();
    }
 else     if (event == Event.CANCELLED_EVENT) {
      removeAsListenerAndDispose(workflowCtrl);
      workflowCtrl=new GTAWorkflowEditController(ureq,getWindowControl(),gtaNode,euce.getCourseEditorEnv());
      listenTo(workflowCtrl);
      myTabbedPane.replaceTab(workflowPos,workflowCtrl.getInitialComponent());
    }
  }
 else   if (assignmentCtrl == source) {
    if (event == Event.DONE_EVENT) {
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
    }
 else     if (event == Event.CANCELLED_EVENT) {
      removeAsListenerAndDispose(assignmentCtrl);
      assignmentCtrl=new GTAAssignmentEditController(ureq,getWindowControl(),gtaNode,config,courseEnv,false);
      listenTo(assignmentCtrl);
      myTabbedPane.replaceTab(assignmentPos,assignmentCtrl.getInitialComponent());
    }
  }
 else   if (submissionCtrl == source) {
    if (event == Event.DONE_EVENT) {
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
    }
 else     if (event == Event.CANCELLED_EVENT) {
      removeAsListenerAndDispose(submissionCtrl);
      submissionCtrl=new GTASubmissionEditController(ureq,getWindowControl(),config);
      listenTo(submissionCtrl);
      myTabbedPane.replaceTab(submissionPos,submissionCtrl.getInitialComponent());
    }
  }
 else   if (manualAssessmentCtrl == source) {
    if (event == Event.DONE_EVENT) {
      manualAssessmentCtrl.updateModuleConfiguration(config);
      updateEnabledDisabledTabs();
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
    }
 else     if (event == Event.CANCELLED_EVENT) {
      removeAsListenerAndDispose(manualAssessmentCtrl);
      manualAssessmentCtrl=new MSEditFormController(ureq,getWindowControl(),config);
      listenTo(manualAssessmentCtrl);
      myTabbedPane.replaceTab(gradingPos,manualAssessmentCtrl.getInitialComponent());
    }
  }
 else   if (solutionsCtrl == source) {
    if (event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
    }
  }
 else   if (source == highScoreNodeConfigController) {
    if (event == Event.DONE_EVENT) {
      fireEvent(ureq,NodeEditController.NODECONFIG_CHANGED_EVENT);
    }
  }
  super.event(ureq,source,event);
}