Program: 69801
Project: 69801
Buggy source:
@SuppressWarnings("String_Node_Str") @Override protected void initForm(FormItemContainer formLayout,Controller listener,UserRequest ureq){
  FormLayoutContainer formLayoutVertical=FormLayoutContainer.createVerticalFormLayout("String_Node_Str",getTranslator());
  formLayout.add(formLayoutVertical);
  setFormTitle("String_Node_Str");
  List<List<String>> mergedDataChanges=new ArrayList<List<String>>();
  textContainer=FormLayoutContainer.createCustomFormLayout("String_Node_Str",getTranslator(),this.velocity_root + "String_Node_Str");
  formLayoutVertical.add(textContainer);
  boolean validChange=(Boolean)getFromRunContext("String_Node_Str");
  textContainer.contextPut("String_Node_Str",validChange);
  if (!validChange)   return;
  List<Identity> selectedIdentities=(List<Identity>)getFromRunContext("String_Node_Str");
  HashMap<String,String> attributeChangeMap=(HashMap<String,String>)getFromRunContext("String_Node_Str");
  HashMap<String,String> roleChangeMap=(HashMap<String,String>)getFromRunContext("String_Node_Str");
  Roles roles=ureq.getUserSession().getRoles();
  boolean isAdministrativeUser=(roles.isAuthor() || roles.isGroupManager() || roles.isUserManager()|| roles.isOLATAdmin());
  userPropertyHandlers=UserManager.getInstance().getUserPropertyHandlersFor(usageIdentifyer,isAdministrativeUser);
  String[] securityGroups={Constants.GROUP_USERMANAGERS,Constants.GROUP_GROUPMANAGERS,Constants.GROUP_AUTHORS,Constants.GROUP_ADMIN};
  for (  Identity identity : selectedIdentities) {
    List<String> userDataArray=new ArrayList<String>();
    userDataArray.add(identity.getName());
    if (attributeChangeMap.containsKey(UserBulkChangeManager.PWD_IDENTIFYER)) {
      userDataArray.add(attributeChangeMap.get(UserBulkChangeManager.PWD_IDENTIFYER));
    }
 else     userDataArray.add("String_Node_Str");
    String userLanguage=identity.getUser().getPreferences().getLanguage();
    if (attributeChangeMap.containsKey(UserBulkChangeManager.LANG_IDENTIFYER)) {
      String inputLanguage=attributeChangeMap.get(UserBulkChangeManager.LANG_IDENTIFYER);
      if (userLanguage.equals(inputLanguage)) {
        userDataArray.add(userLanguage);
      }
 else {
        userDataArray.add("String_Node_Str" + inputLanguage + "String_Node_Str");
      }
    }
 else {
      userDataArray.add(userLanguage);
    }
    Context vcContext=new VelocityContext();
    ubcMan.setUserContext(identity,vcContext,isAdministrativeUser);
    for (int k=0; k < userPropertyHandlers.size(); k++) {
      String propertyName=userPropertyHandlers.get(k).getName();
      String userValue=identity.getUser().getProperty(propertyName,null);
      String inputFieldValue="String_Node_Str";
      if (attributeChangeMap.containsKey(propertyName)) {
        inputFieldValue=attributeChangeMap.get(propertyName);
        inputFieldValue=inputFieldValue.replace("String_Node_Str","String_Node_Str");
        String evaluatedInputFieldValue=ubcMan.evaluateValueWithUserContext(inputFieldValue,vcContext);
        if (evaluatedInputFieldValue.equals(userValue)) {
          userDataArray.add(userValue);
        }
 else {
          userDataArray.add("String_Node_Str" + evaluatedInputFieldValue + "String_Node_Str");
        }
      }
 else {
        userDataArray.add(userValue);
      }
    }
    for (    String securityGroup : securityGroups) {
      String roleStatus=getRoleStatusForIdentity(identity,securityGroup,roleChangeMap);
      userDataArray.add(roleStatus);
    }
    userDataArray.add(roleChangeMap.get("String_Node_Str"));
    mergedDataChanges.add(userDataArray);
  }
  FlexiTableColumnModel tableColumnModel=FlexiTableDataModelFactory.createFlexiTableColumnModel();
  int colPos=0;
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  for (int j=0; j < userPropertyHandlers.size(); j++) {
    UserPropertyHandler userPropertyHandler=userPropertyHandlers.get(j);
    tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(userPropertyHandler.i18nColumnDescriptorLabelKey(),colPos++));
  }
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  FlexiTableDataModel tableDataModel=new FlexiTableDataModelImpl<List<String>>(new OverviewModel(mergedDataChanges,colPos),tableColumnModel);
  uifactory.addTableElement(ureq,"String_Node_Str",tableDataModel,formLayoutVertical);
  Set<Long> allGroups=new HashSet<Long>();
  List<Long> ownGroups=(List<Long>)getFromRunContext("String_Node_Str");
  List<Long> partGroups=(List<Long>)getFromRunContext("String_Node_Str");
  allGroups.addAll(ownGroups);
  allGroups.addAll(partGroups);
  List<Long> mailGroups=(List<Long>)getFromRunContext("String_Node_Str");
  if (allGroups.size() != 0) {
    uifactory.addSpacerElement("String_Node_Str",formLayout,true);
    uifactory.addStaticTextElement("String_Node_Str","String_Node_Str",formLayout);
    FlexiTableColumnModel groupColumnModel=FlexiTableDataModelFactory.createFlexiTableColumnModel();
    groupColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",0));
    groupColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",1));
    groupColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",2));
    groupColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",3));
    List<BusinessGroup> groups=businessGroupService.loadBusinessGroups(allGroups);
    TableDataModel<BusinessGroup> model=new GroupAddOverviewModel(groups,ownGroups,partGroups,mailGroups,getTranslator());
    FlexiTableDataModel groupDataModel=new FlexiTableDataModelImpl<BusinessGroup>(model,groupColumnModel);
    uifactory.addTableElement(ureq,"String_Node_Str",groupDataModel,formLayout);
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") @Override protected void initForm(FormItemContainer formLayout,Controller listener,UserRequest ureq){
  FormLayoutContainer formLayoutVertical=FormLayoutContainer.createVerticalFormLayout("String_Node_Str",getTranslator());
  formLayout.add(formLayoutVertical);
  setFormTitle("String_Node_Str");
  List<List<String>> mergedDataChanges=new ArrayList<List<String>>();
  textContainer=FormLayoutContainer.createCustomFormLayout("String_Node_Str",getTranslator(),this.velocity_root + "String_Node_Str");
  formLayoutVertical.add(textContainer);
  boolean validChange=(Boolean)getFromRunContext("String_Node_Str");
  textContainer.contextPut("String_Node_Str",validChange);
  if (!validChange)   return;
  List<Identity> selectedIdentities=(List<Identity>)getFromRunContext("String_Node_Str");
  HashMap<String,String> attributeChangeMap=(HashMap<String,String>)getFromRunContext("String_Node_Str");
  HashMap<String,String> roleChangeMap=(HashMap<String,String>)getFromRunContext("String_Node_Str");
  Roles roles=ureq.getUserSession().getRoles();
  boolean isAdministrativeUser=(roles.isAuthor() || roles.isGroupManager() || roles.isUserManager()|| roles.isOLATAdmin());
  userPropertyHandlers=UserManager.getInstance().getUserPropertyHandlersFor(usageIdentifyer,isAdministrativeUser);
  String[] securityGroups={Constants.GROUP_USERMANAGERS,Constants.GROUP_GROUPMANAGERS,Constants.GROUP_AUTHORS,Constants.GROUP_ADMIN};
  for (  Identity identity : selectedIdentities) {
    List<String> userDataArray=new ArrayList<String>();
    userDataArray.add(identity.getName());
    if (attributeChangeMap.containsKey(UserBulkChangeManager.PWD_IDENTIFYER)) {
      userDataArray.add(attributeChangeMap.get(UserBulkChangeManager.PWD_IDENTIFYER));
    }
 else     userDataArray.add("String_Node_Str");
    String userLanguage=identity.getUser().getPreferences().getLanguage();
    if (attributeChangeMap.containsKey(UserBulkChangeManager.LANG_IDENTIFYER)) {
      String inputLanguage=attributeChangeMap.get(UserBulkChangeManager.LANG_IDENTIFYER);
      if (userLanguage.equals(inputLanguage)) {
        userDataArray.add(userLanguage);
      }
 else {
        userDataArray.add("String_Node_Str" + inputLanguage + "String_Node_Str");
      }
    }
 else {
      userDataArray.add(userLanguage);
    }
    Context vcContext=new VelocityContext();
    ubcMan.setUserContext(identity,vcContext,isAdministrativeUser);
    for (int k=0; k < userPropertyHandlers.size(); k++) {
      String propertyName=userPropertyHandlers.get(k).getName();
      String userValue=identity.getUser().getProperty(propertyName,null);
      String inputFieldValue="String_Node_Str";
      if (attributeChangeMap.containsKey(propertyName)) {
        inputFieldValue=attributeChangeMap.get(propertyName);
        inputFieldValue=inputFieldValue.replace("String_Node_Str","String_Node_Str");
        String evaluatedInputFieldValue=ubcMan.evaluateValueWithUserContext(inputFieldValue,vcContext);
        if (evaluatedInputFieldValue.equals(userValue)) {
          userDataArray.add(userValue);
        }
 else {
          userDataArray.add("String_Node_Str" + evaluatedInputFieldValue + "String_Node_Str");
        }
      }
 else {
        userDataArray.add(userValue);
      }
    }
    for (    String securityGroup : securityGroups) {
      String roleStatus=getRoleStatusForIdentity(identity,securityGroup,roleChangeMap);
      userDataArray.add(roleStatus);
    }
    userDataArray.add(roleChangeMap.get("String_Node_Str"));
    mergedDataChanges.add(userDataArray);
  }
  FlexiTableColumnModel tableColumnModel=FlexiTableDataModelFactory.createFlexiTableColumnModel();
  int colPos=0;
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  for (int j=0; j < userPropertyHandlers.size(); j++) {
    UserPropertyHandler userPropertyHandler=userPropertyHandlers.get(j);
    tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(userPropertyHandler.i18nColumnDescriptorLabelKey(),colPos++));
  }
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",colPos++));
  FlexiTableDataModel tableDataModel=new FlexiTableDataModelImpl<List<String>>(new OverviewModel(mergedDataChanges,colPos),tableColumnModel);
  uifactory.addTableElement(ureq,getWindowControl(),"String_Node_Str",tableDataModel,formLayoutVertical);
  Set<Long> allGroups=new HashSet<Long>();
  List<Long> ownGroups=(List<Long>)getFromRunContext("String_Node_Str");
  List<Long> partGroups=(List<Long>)getFromRunContext("String_Node_Str");
  allGroups.addAll(ownGroups);
  allGroups.addAll(partGroups);
  List<Long> mailGroups=(List<Long>)getFromRunContext("String_Node_Str");
  if (allGroups.size() != 0) {
    uifactory.addSpacerElement("String_Node_Str",formLayout,true);
    uifactory.addStaticTextElement("String_Node_Str","String_Node_Str",formLayout);
    FlexiTableColumnModel groupColumnModel=FlexiTableDataModelFactory.createFlexiTableColumnModel();
    groupColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",0));
    groupColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",1));
    groupColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",2));
    groupColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("String_Node_Str",3));
    List<BusinessGroup> groups=businessGroupService.loadBusinessGroups(allGroups);
    TableDataModel<BusinessGroup> model=new GroupAddOverviewModel(groups,ownGroups,partGroups,mailGroups,getTranslator());
    FlexiTableDataModel groupDataModel=new FlexiTableDataModelImpl<BusinessGroup>(model,groupColumnModel);
    uifactory.addTableElement(ureq,getWindowControl(),"String_Node_Str",groupDataModel,formLayout);
  }
}