Program: 60883
Project: 60883
Buggy source:
private List<IColumn<UserTO>> getColumns(){
  final List<IColumn<UserTO>> columns=new ArrayList<IColumn<UserTO>>();
  for (  String name : preferences.getList(getRequest(),Constants.PREF_USERS_DETAILS_VIEW)) {
    Field field=null;
    try {
      field=UserTO.class.getDeclaredField(name);
    }
 catch (    Exception ue) {
      LOG.debug("String_Node_Str",name,ue);
      try {
        field=AbstractAttributableTO.class.getDeclaredField(name);
      }
 catch (      Exception aae) {
        LOG.error("String_Node_Str",name,aae);
      }
    }
    if ("String_Node_Str".equalsIgnoreCase(name)) {
      columns.add(new TokenColumn("String_Node_Str"));
    }
 else     if (field != null && field.getType().equals(Date.class)) {
      columns.add(new DatePropertyColumn<UserTO>(new ResourceModel(name,name),name,name));
    }
 else {
      columns.add(new PropertyColumn(new ResourceModel(name,name),name,name));
    }
  }
  for (  String name : preferences.getList(getRequest(),Constants.PREF_USERS_ATTRIBUTES_VIEW)) {
    columns.add(new UserAttrColumn(name,UserAttrColumn.SchemaType.schema));
  }
  for (  String name : preferences.getList(getRequest(),Constants.PREF_USERS_DERIVED_ATTRIBUTES_VIEW)) {
    columns.add(new UserAttrColumn(name,UserAttrColumn.SchemaType.derivedSchema));
  }
  for (  String name : preferences.getList(getRequest(),Constants.PREF_USERS_VIRTUAL_ATTRIBUTES_VIEW)) {
    columns.add(new UserAttrColumn(name,UserAttrColumn.SchemaType.virtualSchema));
  }
  if (columns.isEmpty()) {
    columns.add(new PropertyColumn(new ResourceModel("String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
    columns.add(new PropertyColumn(new ResourceModel("String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
    columns.add(new PropertyColumn(new ResourceModel("String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
  }
  columns.add(new AbstractColumn<UserTO>(new ResourceModel("String_Node_Str")){
    private static final long serialVersionUID=2054811145491901166L;
    @Override public String getCssClass(){
      return "String_Node_Str";
    }
    @Override public void populateItem(    final Item<ICellPopulator<UserTO>> cellItem,    final String componentId,    final IModel<UserTO> model){
      Panel panel=new EditLinkPanel(componentId,model);
      MetaDataRoleAuthorizationStrategy.authorize(panel,ENABLE,xmlRolesReader.getAllAllowedRoles("String_Node_Str","String_Node_Str"));
      panel.add(new IndicatingAjaxLink("String_Node_Str"){
        private static final long serialVersionUID=-7978723352517770644L;
        @Override public void onClick(        final AjaxRequestTarget target){
          editmodal.setPageCreator(new ModalWindow.PageCreator(){
            private static final long serialVersionUID=-7834632442532690940L;
            @Override public Page createPage(){
              return new UserModalPage(page.getPageReference(),editmodal,model.getObject());
            }
          }
);
          editmodal.show(target);
        }
      }
);
      cellItem.add(panel);
    }
  }
);
  columns.add(new AbstractColumn<UserTO>(new ResourceModel("String_Node_Str")){
    private static final long serialVersionUID=2054811145491901166L;
    @Override public String getCssClass(){
      return "String_Node_Str";
    }
    @Override public void populateItem(    final Item<ICellPopulator<UserTO>> cellItem,    final String componentId,    final IModel<UserTO> model){
      Panel panel=new DeleteLinkPanel(componentId,model);
      MetaDataRoleAuthorizationStrategy.authorize(panel,ENABLE,xmlRolesReader.getAllAllowedRoles("String_Node_Str","String_Node_Str"));
      panel.add(new IndicatingDeleteOnConfirmAjaxLink("String_Node_Str"){
        private static final long serialVersionUID=-7978723352517770644L;
        @Override public void onClick(        final AjaxRequestTarget target){
          try {
            userRestClient.delete(model.getObject().getId());
            info(getString("String_Node_Str"));
          }
 catch (          SyncopeClientCompositeErrorException scce) {
            error(scce.getMessage());
          }
          target.add(feedbackPanel);
          final EventDataWrapper data=new EventDataWrapper();
          data.setTarget(target);
          send(getParent(),Broadcast.BREADTH,data);
        }
      }
);
      cellItem.add(panel);
    }
  }
);
  return columns;
}

Fixed version (ground truth):
private List<IColumn<UserTO>> getColumns(){
  final List<IColumn<UserTO>> columns=new ArrayList<IColumn<UserTO>>();
  for (  String name : preferences.getList(getRequest(),Constants.PREF_USERS_DETAILS_VIEW)) {
    Field field=null;
    try {
      field=UserTO.class.getDeclaredField(name);
    }
 catch (    Exception ue) {
      LOG.debug("String_Node_Str",name,ue);
      try {
        field=AbstractAttributableTO.class.getDeclaredField(name);
      }
 catch (      Exception aae) {
        LOG.error("String_Node_Str",name,aae);
      }
    }
    if ("String_Node_Str".equalsIgnoreCase(name)) {
      columns.add(new TokenColumn("String_Node_Str"));
    }
 else     if (field != null && field.getType().equals(Date.class)) {
      columns.add(new DatePropertyColumn<UserTO>(new ResourceModel(name,name),name,name));
    }
 else {
      columns.add(new PropertyColumn(new ResourceModel(name,name),name,name));
    }
  }
  for (  String name : preferences.getList(getRequest(),Constants.PREF_USERS_ATTRIBUTES_VIEW)) {
    columns.add(new UserAttrColumn(name,UserAttrColumn.SchemaType.schema));
  }
  for (  String name : preferences.getList(getRequest(),Constants.PREF_USERS_DERIVED_ATTRIBUTES_VIEW)) {
    columns.add(new UserAttrColumn(name,UserAttrColumn.SchemaType.derivedSchema));
  }
  for (  String name : preferences.getList(getRequest(),Constants.PREF_USERS_VIRTUAL_ATTRIBUTES_VIEW)) {
    columns.add(new UserAttrColumn(name,UserAttrColumn.SchemaType.virtualSchema));
  }
  if (columns.isEmpty()) {
    columns.add(new PropertyColumn(new ResourceModel("String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
    columns.add(new PropertyColumn(new ResourceModel("String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
    columns.add(new PropertyColumn(new ResourceModel("String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
  }
  columns.add(new AbstractColumn<UserTO>(new ResourceModel("String_Node_Str")){
    private static final long serialVersionUID=2054811145491901166L;
    @Override public String getCssClass(){
      return "String_Node_Str";
    }
    @Override public void populateItem(    final Item<ICellPopulator<UserTO>> cellItem,    final String componentId,    final IModel<UserTO> model){
      Panel panel=new EditLinkPanel(componentId,model);
      MetaDataRoleAuthorizationStrategy.authorize(panel,ENABLE,xmlRolesReader.getAllAllowedRoles("String_Node_Str","String_Node_Str"));
      panel.add(new IndicatingAjaxLink("String_Node_Str"){
        private static final long serialVersionUID=-7978723352517770644L;
        @Override public void onClick(        final AjaxRequestTarget target){
          editmodal.setPageCreator(new ModalWindow.PageCreator(){
            private static final long serialVersionUID=-7834632442532690940L;
            @Override public Page createPage(){
              return new UserModalPage(page.getPageReference(),editmodal,model.getObject());
            }
          }
);
          editmodal.show(target);
        }
      }
);
      cellItem.add(panel);
    }
  }
);
  columns.add(new AbstractColumn<UserTO>(new ResourceModel("String_Node_Str")){
    private static final long serialVersionUID=2054811145491901166L;
    @Override public String getCssClass(){
      return "String_Node_Str";
    }
    @Override public void populateItem(    final Item<ICellPopulator<UserTO>> cellItem,    final String componentId,    final IModel<UserTO> model){
      Panel panel=new DeleteLinkPanel(componentId,model);
      MetaDataRoleAuthorizationStrategy.authorize(panel,ENABLE,xmlRolesReader.getAllAllowedRoles("String_Node_Str","String_Node_Str"));
      panel.add(new IndicatingDeleteOnConfirmAjaxLink("String_Node_Str"){
        private static final long serialVersionUID=-7978723352517770644L;
        @Override public void onClick(        final AjaxRequestTarget target){
          try {
            userRestClient.delete(model.getObject().getId());
            info(getString("String_Node_Str"));
          }
 catch (          SyncopeClientCompositeErrorException scce) {
            error(scce.getMessage());
          }
          target.add(feedbackPanel);
          final EventDataWrapper data=new EventDataWrapper();
          data.setTarget(target);
          send(getPage(),Broadcast.BREADTH,data);
        }
      }
);
      cellItem.add(panel);
    }
  }
);
  return columns;
}