Program: 69586
Project: 69586
Buggy source:
@Override protected void initForm(FormItemContainer formLayout,Controller listener,UserRequest ureq){
  setFormTitle("String_Node_Str");
  FlexiTableColumnModel columnsModel=FlexiTableDataModelFactory.createFlexiTableColumnModel();
  columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RCols.position.i18nKey(),RCols.position.ordinal()));
  columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RCols.role.i18nKey(),RCols.role.ordinal()));
  columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RCols.userAttributeKey.i18nKey(),RCols.userAttributeKey.ordinal()));
  columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RCols.userAttributeValue.i18nKey(),RCols.userAttributeValue.ordinal()));
  columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RCols.landingPage.i18nKey(),RCols.landingPage.ordinal()));
  columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RCols.landingPageChooser.i18nKey(),RCols.landingPageChooser.ordinal()));
  columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("String_Node_Str",-1,"String_Node_Str",new StaticFlexiCellRenderer("String_Node_Str","String_Node_Str","String_Node_Str")));
  columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("String_Node_Str",-1,"String_Node_Str",new StaticFlexiCellRenderer("String_Node_Str","String_Node_Str","String_Node_Str")));
  columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("String_Node_Str",translate("String_Node_Str"),"String_Node_Str"));
  columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("String_Node_Str",translate("String_Node_Str"),"String_Node_Str"));
  Rules rules=lpModule.getRules();
  List<Rule> ruleList=new ArrayList<>(rules.getRules());
  if (ruleList.isEmpty()) {
    ruleList.add(new Rule());
  }
  List<RuleWrapper> wrappers=new ArrayList<>();
  int i=0;
  for (  Rule rule : ruleList) {
    wrappers.add(initRuleWrapper(++i,rule,formLayout));
  }
  if (formLayout instanceof FormLayoutContainer) {
    FormLayoutContainer layoutCont=(FormLayoutContainer)formLayout;
    layoutCont.contextPut("String_Node_Str",wrappers);
  }
  model=new RulesDataModel(columnsModel,wrappers);
  tableEl=uifactory.addTableElement(getWindowControl(),"String_Node_Str",model,getTranslator(),formLayout);
  tableEl.setCustomizeColumns(false);
  tableEl.setRendererType(FlexiTableRendererType.classic);
  FormLayoutContainer buttonLayout=FormLayoutContainer.createButtonLayout("String_Node_Str",getTranslator());
  formLayout.add("String_Node_Str",buttonLayout);
  uifactory.addFormSubmitButton("String_Node_Str",buttonLayout);
}

Fixed version (ground truth):
@Override protected void initForm(FormItemContainer formLayout,Controller listener,UserRequest ureq){
  setFormTitle("String_Node_Str");
  FlexiTableColumnModel columnsModel=FlexiTableDataModelFactory.createFlexiTableColumnModel();
  columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RCols.position.i18nKey(),RCols.position.ordinal()));
  columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RCols.role.i18nKey(),RCols.role.ordinal()));
  columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RCols.userAttributeKey.i18nKey(),RCols.userAttributeKey.ordinal()));
  columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RCols.userAttributeValue.i18nKey(),RCols.userAttributeValue.ordinal()));
  columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RCols.landingPage.i18nKey(),RCols.landingPage.ordinal()));
  columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RCols.landingPageChooser.i18nKey(),RCols.landingPageChooser.ordinal()));
  columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("String_Node_Str",-1,"String_Node_Str",new StaticFlexiCellRenderer("String_Node_Str","String_Node_Str","String_Node_Str")));
  columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("String_Node_Str",-1,"String_Node_Str",new StaticFlexiCellRenderer("String_Node_Str","String_Node_Str","String_Node_Str")));
  columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("String_Node_Str",translate("String_Node_Str"),"String_Node_Str"));
  columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("String_Node_Str",translate("String_Node_Str"),"String_Node_Str"));
  Rules rules=lpModule.getRules();
  List<Rule> ruleList=new ArrayList<>(rules.getRules());
  if (ruleList.isEmpty()) {
    ruleList.add(new Rule());
  }
  List<RuleWrapper> wrappers=new ArrayList<>();
  int i=0;
  for (  Rule rule : ruleList) {
    wrappers.add(initRuleWrapper(++i,rule,formLayout));
  }
  if (formLayout instanceof FormLayoutContainer) {
    FormLayoutContainer layoutCont=(FormLayoutContainer)formLayout;
    layoutCont.contextPut("String_Node_Str",wrappers);
  }
  model=new RulesDataModel(columnsModel,wrappers);
  tableEl=uifactory.addTableElement(getWindowControl(),"String_Node_Str",model,getTranslator(),formLayout);
  tableEl.setCustomizeColumns(false);
  tableEl.setRendererType(FlexiTableRendererType.classic);
  FormLayoutContainer buttonLayout=FormLayoutContainer.createButtonLayout("String_Node_Str",getTranslator());
  formLayout.add("String_Node_Str",buttonLayout);
  saveButton=uifactory.addFormSubmitButton("String_Node_Str",buttonLayout);
}