Program: 69314
Project: 69314
Buggy source:
private SortKey initColumns(FlexiTableColumnModel columnsModel){
  SortKey defaultSortKey=null;
  String editAction="String_Node_Str";
  if (chatEnabled && editable) {
    DefaultFlexiColumnModel chatCol=new DefaultFlexiColumnModel(Cols.online.i18n(),Cols.online.ordinal());
    chatCol.setExportable(false);
    columnsModel.addFlexiColumnModel(chatCol);
  }
  int colPos=USER_PROPS_OFFSET;
  for (  UserPropertyHandler userPropertyHandler : userPropertyHandlers) {
    if (userPropertyHandler == null)     continue;
    String propName=userPropertyHandler.getName();
    boolean visible=userManager.isMandatoryUserProperty(USER_PROPS_ID,userPropertyHandler);
    String myEditAction=editAction;
    FlexiColumnModel col;
    if (UserConstants.FIRSTNAME.equals(propName) || UserConstants.LASTNAME.equals(propName) || UserConstants.EMAIL.equals(propName)) {
      if (UserConstants.EMAIL.equals(propName)) {
        myEditAction="String_Node_Str";
        if (!canEmail) {
          continue;
        }
      }
      col=new DefaultFlexiColumnModel(userPropertyHandler.i18nColumnDescriptorLabelKey(),colPos,myEditAction,true,propName,new StaticFlexiCellRenderer(myEditAction,new TextFlexiCellRenderer()));
    }
 else {
      col=new DefaultFlexiColumnModel(visible,userPropertyHandler.i18nColumnDescriptorLabelKey(),colPos,true,propName);
    }
    columnsModel.addFlexiColumnModel(col);
    colPos++;
    if (defaultSortKey == null) {
      defaultSortKey=new SortKey(propName,true);
    }
  }
  if (userLastTimeVisible) {
    columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.firstTime.i18n(),Cols.firstTime.ordinal(),true,Cols.firstTime.name()));
    columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.lastTime.i18n(),Cols.lastTime.ordinal(),true,Cols.lastTime.name()));
  }
  return defaultSortKey;
}

Fixed version (ground truth):
private SortKey initColumns(FlexiTableColumnModel columnsModel){
  int colPos=AbstractMemberListController.USER_PROPS_OFFSET;
  SortKey defaultSortKey=null;
  String rowAction="String_Node_Str";
  if (chatEnabled && editable) {
    DefaultFlexiColumnModel chatCol=new DefaultFlexiColumnModel(Cols.online.i18n(),Cols.online.ordinal());
    chatCol.setExportable(false);
    columnsModel.addFlexiColumnModel(chatCol);
  }
  for (  UserPropertyHandler userPropertyHandler : userPropertyHandlers) {
    if (userPropertyHandler == null)     continue;
    String propName=userPropertyHandler.getName();
    boolean visible=userManager.isMandatoryUserProperty(MembersDisplayRunController.USER_PROPS_LIST_ID,userPropertyHandler);
    String emailRowAction=rowAction;
    FlexiColumnModel col;
    if (UserConstants.FIRSTNAME.equals(propName) || UserConstants.LASTNAME.equals(propName) || UserConstants.EMAIL.equals(propName)) {
      if (UserConstants.EMAIL.equals(propName) && canEmail) {
        emailRowAction="String_Node_Str";
      }
      col=new DefaultFlexiColumnModel(userPropertyHandler.i18nColumnDescriptorLabelKey(),colPos,emailRowAction,true,propName,new StaticFlexiCellRenderer(emailRowAction,new TextFlexiCellRenderer()));
    }
 else {
      col=new DefaultFlexiColumnModel(visible,userPropertyHandler.i18nColumnDescriptorLabelKey(),colPos,true,propName);
    }
    columnsModel.addFlexiColumnModel(col);
    colPos++;
    if (defaultSortKey == null) {
      defaultSortKey=new SortKey(propName,true);
    }
  }
  if (userLastTimeVisible) {
    columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.firstTime.i18n(),Cols.firstTime.ordinal(),true,Cols.firstTime.name()));
    columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.lastTime.i18n(),Cols.lastTime.ordinal(),true,Cols.lastTime.name()));
  }
  return defaultSortKey;
}