Program: 69737
Project: 69737
Buggy source:
/** 
 * @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#initForm(org.olat.core.gui.components.form.flexible.FormItemContainer,org.olat.core.gui.control.Controller,org.olat.core.gui.UserRequest)
 */
@Override protected void initForm(FormItemContainer formLayout,Controller listener,UserRequest ureq){
  setFormDescription("String_Node_Str");
  search=uifactory.addTextElement("String_Node_Str","String_Node_Str",100,"String_Node_Str",formLayout);
  if (isUsedInStepWizzard()) {
    searchLink=uifactory.addFormLink("String_Node_Str",formLayout,Link.BUTTON);
  }
 else {
    searchButton=uifactory.addFormSubmitButton("String_Node_Str",formLayout);
    uifactory.addSpacerElement("String_Node_Str",formLayout,false);
  }
  errorComp=uifactory.createSimpleErrorText("String_Node_Str","String_Node_Str");
  formLayout.add(errorComp);
  tableCont=FormLayoutContainer.createCustomFormLayout("String_Node_Str",getTranslator(),velocity_root + "String_Node_Str");
  tableCont.setRootForm(mainForm);
  formLayout.add(tableCont);
  FlexiTableColumnModel tableColumnModel=FlexiTableDataModelFactory.createFlexiTableColumnModel();
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.groupName.i18n(),Cols.groupName.ordinal()));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.description.i18n(),Cols.description.ordinal()));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.courses.i18n(),Cols.courses.ordinal()));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.tutor.i18n(),Cols.tutor.ordinal()));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.participant.i18n(),Cols.participant.ordinal()));
  tableDataModel=new GroupTableDataModel(Collections.<GroupWrapper>emptyList(),tableColumnModel);
  FlexiTableElement table=uifactory.addTableElement(ureq,getWindowControl(),"String_Node_Str",tableDataModel,tableCont);
  tableCont.add("String_Node_Str",table);
  if (!isUsedInStepWizzard()) {
    saveLink=uifactory.addFormLink("String_Node_Str",formLayout,Link.BUTTON);
  }
}

Fixed version (ground truth):
/** 
 * @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#initForm(org.olat.core.gui.components.form.flexible.FormItemContainer,org.olat.core.gui.control.Controller,org.olat.core.gui.UserRequest)
 */
@Override protected void initForm(FormItemContainer formLayout,Controller listener,UserRequest ureq){
  setFormDescription("String_Node_Str");
  search=uifactory.addTextElement("String_Node_Str","String_Node_Str",100,"String_Node_Str",formLayout);
  if (isUsedInStepWizzard()) {
    searchLink=uifactory.addFormLink("String_Node_Str",formLayout,Link.BUTTON);
  }
 else {
    searchButton=uifactory.addFormSubmitButton("String_Node_Str",formLayout);
    uifactory.addSpacerElement("String_Node_Str",formLayout,false);
  }
  errorComp=uifactory.createSimpleErrorText("String_Node_Str","String_Node_Str");
  formLayout.add(errorComp);
  tableCont=FormLayoutContainer.createCustomFormLayout("String_Node_Str",getTranslator(),velocity_root + "String_Node_Str");
  tableCont.setRootForm(mainForm);
  formLayout.add(tableCont);
  FlexiTableColumnModel tableColumnModel=FlexiTableDataModelFactory.createFlexiTableColumnModel();
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.groupName.i18n(),Cols.groupName.ordinal()));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.description.i18n(),Cols.description.ordinal()));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.courses.i18n(),Cols.courses.ordinal()));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.tutor.i18n(),Cols.tutor.ordinal()));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.participant.i18n(),Cols.participant.ordinal()));
  tableDataModel=new GroupTableDataModel(Collections.<GroupWrapper>emptyList(),tableColumnModel);
  table=uifactory.addTableElement(ureq,getWindowControl(),"String_Node_Str",tableDataModel,tableCont);
  tableCont.add("String_Node_Str",table);
  if (!isUsedInStepWizzard()) {
    saveLink=uifactory.addFormLink("String_Node_Str",formLayout,Link.BUTTON);
  }
}