Program: 69887
Project: 69887
Buggy source:
@Override protected void event(UserRequest ureq,Controller source,Event event){
  if (source == memberListCtr) {
    if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) {
      TableEvent te=(TableEvent)event;
      String actionid=te.getActionId();
      MemberView member=(MemberView)memberListCtr.getTableDataModel().getObject(te.getRowId());
      if (TABLE_ACTION_EDIT.equals(actionid)) {
        openEdit(ureq,member);
      }
 else       if (TABLE_ACTION_REMOVE.equals(actionid)) {
        confirmDelete(ureq,Collections.singletonList(member));
      }
 else       if (TABLE_ACTION_GRADUATE.equals(actionid)) {
        doGraduate(ureq,Collections.singletonList(member));
      }
 else       if (TABLE_ACTION_IM.equals(actionid)) {
        doIm(ureq,member);
      }
    }
 else     if (event instanceof TableMultiSelectEvent) {
      TableMultiSelectEvent te=(TableMultiSelectEvent)event;
      @SuppressWarnings("String_Node_Str") List<MemberView> selectedItems=memberListCtr.getObjects(te.getSelection());
      if (TABLE_ACTION_REMOVE.equals(te.getAction())) {
        confirmDelete(ureq,selectedItems);
      }
 else       if (TABLE_ACTION_EDIT.equals(te.getAction())) {
        openEdit(ureq,selectedItems);
      }
 else       if (TABLE_ACTION_MAIL.equals(te.getAction())) {
        doSendMail(ureq,selectedItems);
      }
 else       if (TABLE_ACTION_GRADUATE.equals(te.getAction())) {
        doGraduate(ureq,selectedItems);
      }
    }
  }
 else   if (source == leaveDialogBox) {
    if (Event.DONE_EVENT == event) {
      List<Identity> members=leaveDialogBox.getIdentities();
      doLeave(members,leaveDialogBox.isSendMail());
      reloadModel();
    }
    cmc.deactivate();
    cleanUpPopups();
  }
 else   if (source == editMemberCtrl) {
    cmc.deactivate();
    if (event instanceof MemberPermissionChangeEvent) {
      MemberPermissionChangeEvent e=(MemberPermissionChangeEvent)event;
      if (e.getMember() != null) {
        doConfirmChangePermission(ureq,e,null);
      }
 else {
        doConfirmChangePermission(ureq,e,editMemberCtrl.getMembers());
      }
    }
  }
 else   if (confirmSendMailBox == source) {
    boolean sendMail=DialogBoxUIFactory.isYesEvent(event) || DialogBoxUIFactory.isOkEvent(event);
    MailConfirmation confirmation=(MailConfirmation)confirmSendMailBox.getUserObject();
    MemberPermissionChangeEvent e=confirmation.getE();
    if (e.getMember() != null) {
      doChangePermission(ureq,e,null,sendMail);
    }
 else {
      doChangePermission(ureq,e,confirmation.getMembers(),sendMail);
    }
  }
 else   if (source == contactCtrl) {
    cmc.deactivate();
    cleanUpPopups();
  }
 else   if (source == cmc) {
    cleanUpPopups();
  }
}

Fixed version (ground truth):
@Override protected void event(UserRequest ureq,Controller source,Event event){
  if (source == memberListCtr) {
    if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) {
      TableEvent te=(TableEvent)event;
      String actionid=te.getActionId();
      MemberView member=(MemberView)memberListCtr.getTableDataModel().getObject(te.getRowId());
      if (TABLE_ACTION_EDIT.equals(actionid)) {
        openEdit(ureq,member);
      }
 else       if (TABLE_ACTION_REMOVE.equals(actionid)) {
        confirmDelete(ureq,Collections.singletonList(member));
      }
 else       if (TABLE_ACTION_GRADUATE.equals(actionid)) {
        doGraduate(ureq,Collections.singletonList(member));
      }
 else       if (TABLE_ACTION_IM.equals(actionid)) {
        doIm(ureq,member);
      }
    }
 else     if (event instanceof TableMultiSelectEvent) {
      TableMultiSelectEvent te=(TableMultiSelectEvent)event;
      @SuppressWarnings("String_Node_Str") List<MemberView> selectedItems=memberListCtr.getObjects(te.getSelection());
      if (TABLE_ACTION_REMOVE.equals(te.getAction())) {
        confirmDelete(ureq,selectedItems);
      }
 else       if (TABLE_ACTION_EDIT.equals(te.getAction())) {
        openEdit(ureq,selectedItems);
      }
 else       if (TABLE_ACTION_MAIL.equals(te.getAction())) {
        doSendMail(ureq,selectedItems);
      }
 else       if (TABLE_ACTION_GRADUATE.equals(te.getAction())) {
        doGraduate(ureq,selectedItems);
      }
    }
  }
 else   if (source == leaveDialogBox) {
    if (Event.DONE_EVENT == event) {
      List<Identity> members=leaveDialogBox.getIdentities();
      doLeave(members,leaveDialogBox.isSendMail());
      reloadModel();
    }
    cmc.deactivate();
    cleanUpPopups();
  }
 else   if (source == editMemberCtrl) {
    cmc.deactivate();
    if (event instanceof MemberPermissionChangeEvent) {
      MemberPermissionChangeEvent e=(MemberPermissionChangeEvent)event;
      if (e.getMember() != null) {
        doConfirmChangePermission(ureq,e,null);
      }
 else {
        doConfirmChangePermission(ureq,e,editMemberCtrl.getMembers());
      }
    }
  }
 else   if (confirmSendMailBox == source) {
    boolean sendMail=DialogBoxUIFactory.isYesEvent(event) || DialogBoxUIFactory.isOkEvent(event);
    MailConfirmation confirmation=(MailConfirmation)confirmSendMailBox.getUserObject();
    MemberPermissionChangeEvent e=confirmation.getE();
    if (e.getMember() != null) {
      doChangePermission(ureq,e,sendMail);
    }
 else {
      doChangePermission(ureq,e,confirmation.getMembers(),sendMail);
    }
  }
 else   if (source == contactCtrl) {
    cmc.deactivate();
    cleanUpPopups();
  }
 else   if (source == cmc) {
    cleanUpPopups();
  }
}