Program: 60472
Project: 60472
Buggy source:
/** 
 * Table view of a list of beans.
 * @param id id.
 * @param list list of item.
 * @param reference list item reference class.
 * @param includes Used to sort and restrict the set of bean's fields to be shown.
 * @param actions item actions.
 */
private ListViewPanel(final String id,final List<T> list,final Class<T> reference,final List<String> includes,final ActionLinksPanel.Builder<T> actions,final CheckAvailability check,final boolean reuseItem,final IModel<? extends Collection<T>> model){
  super(id);
  setOutputMarkupId(true);
  this.check=Model.of(check);
  addInnerObject(new Label("String_Node_Str",new ResourceModel("String_Node_Str",StringUtils.EMPTY)));
  final CheckGroup<T> checkGroup=new CheckGroup<>("String_Node_Str",model);
  checkGroup.setOutputMarkupId(true);
  checkGroup.add(new AjaxFormChoiceComponentUpdatingBehavior(){
    private static final long serialVersionUID=-151291731388673682L;
    @Override protected void onUpdate(    final AjaxRequestTarget target){
    }
  }
);
  addInnerObject(checkGroup);
  groupSelector=new CheckGroupSelector("String_Node_Str",checkGroup);
  addInnerObject(groupSelector.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true).setVisible(this.check.getObject() == CheckAvailability.AVAILABLE));
  final List<String> toBeIncluded;
  if (includes == null || includes.isEmpty()) {
    toBeIncluded=new ArrayList<>();
    for (    Field field : Arrays.asList(reference.getDeclaredFields())) {
      toBeIncluded.add(field.getName());
    }
  }
 else {
    toBeIncluded=includes;
  }
  if (toBeIncluded.isEmpty()) {
    LOG.warn("String_Node_Str",reference.getName());
    listOfItems=new ArrayList<>();
  }
 else   if (list == null || list.isEmpty()) {
    LOG.info("String_Node_Str");
    listOfItems=new ArrayList<>();
  }
 else {
    listOfItems=list;
    if (LOG.isDebugEnabled()) {
      for (      String field : toBeIncluded) {
        LOG.debug("String_Node_Str",field);
      }
    }
  }
  addInnerObject(header(toBeIncluded));
  final ListView<T> beans=new ListView<T>("String_Node_Str",listOfItems){
    private static final long serialVersionUID=1L;
    @Override protected void populateItem(    final ListItem<T> beanItem){
      beanItem.add(new Check<>("String_Node_Str",beanItem.getModel(),checkGroup).setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true).setVisible(ListViewPanel.this.check.getObject() == CheckAvailability.AVAILABLE || ListViewPanel.this.check.getObject() == CheckAvailability.DISABLED).setEnabled(ListViewPanel.this.check.getObject() == CheckAvailability.AVAILABLE));
      final T bean=beanItem.getModelObject();
      final ListView<String> fields=new ListView<String>("String_Node_Str",toBeIncluded){
        private static final long serialVersionUID=1L;
        @Override protected void populateItem(        final ListItem<String> fieldItem){
          fieldItem.add(getValueComponent(fieldItem.getModelObject(),bean));
        }
      }
;
      beanItem.add(fields);
      beanItem.add(actions.build("String_Node_Str",bean));
    }
  }
;
  beans.setOutputMarkupId(true);
  beans.setReuseItems(reuseItem);
  beans.setRenderBodyOnly(true);
  checkGroup.add(beans);
}

Fixed version (ground truth):
/** 
 * Table view of a list of beans.
 * @param id id.
 * @param list list of item.
 * @param reference list item reference class.
 * @param includes Used to sort and restrict the set of bean's fields to be shown.
 * @param actions item actions.
 */
private ListViewPanel(final String id,final List<T> list,final Class<T> reference,final List<String> includes,final ActionLinksPanel.Builder<T> actions,final CheckAvailability check,final boolean reuseItem,final IModel<? extends Collection<T>> model){
  super(id);
  setOutputMarkupId(true);
  this.check=Model.of(check);
  addInnerObject(new Label("String_Node_Str",new ResourceModel("String_Node_Str",StringUtils.EMPTY)));
  final CheckGroup<T> checkGroup=new CheckGroup<>("String_Node_Str",model);
  checkGroup.setOutputMarkupId(true);
  checkGroup.add(new AjaxFormChoiceComponentUpdatingBehavior(){
    private static final long serialVersionUID=-151291731388673682L;
    @Override protected void onUpdate(    final AjaxRequestTarget target){
    }
  }
);
  addInnerObject(checkGroup);
  groupSelector=new CheckGroupSelector("String_Node_Str",checkGroup);
  addInnerObject(groupSelector.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true).setVisible(this.check.getObject() == CheckAvailability.AVAILABLE));
  final List<String> toBeIncluded;
  if (includes == null || includes.isEmpty()) {
    toBeIncluded=new ArrayList<>();
    for (    Field field : Arrays.asList(reference.getDeclaredFields())) {
      toBeIncluded.add(field.getName());
    }
  }
 else {
    toBeIncluded=includes;
  }
  if (toBeIncluded.isEmpty()) {
    LOG.warn("String_Node_Str",reference.getName());
    listOfItems=new ArrayList<>();
  }
 else   if (list == null || list.isEmpty()) {
    LOG.info("String_Node_Str");
    listOfItems=new ArrayList<>();
  }
 else {
    listOfItems=list;
    if (LOG.isDebugEnabled()) {
      for (      String field : toBeIncluded) {
        LOG.debug("String_Node_Str",field);
      }
    }
  }
  addInnerObject(header(toBeIncluded));
  beans=new ListView<T>("String_Node_Str",listOfItems){
    private static final long serialVersionUID=1L;
    @Override protected void populateItem(    final ListItem<T> beanItem){
      beanItem.add(new Check<>("String_Node_Str",beanItem.getModel(),checkGroup).setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true).setVisible(ListViewPanel.this.check.getObject() == CheckAvailability.AVAILABLE || ListViewPanel.this.check.getObject() == CheckAvailability.DISABLED).setEnabled(ListViewPanel.this.check.getObject() == CheckAvailability.AVAILABLE));
      final T bean=beanItem.getModelObject();
      final ListView<String> fields=new ListView<String>("String_Node_Str",toBeIncluded){
        private static final long serialVersionUID=1L;
        @Override protected void populateItem(        final ListItem<String> fieldItem){
          fieldItem.add(getValueComponent(fieldItem.getModelObject(),bean));
        }
      }
;
      beanItem.add(fields);
      beanItem.add(actions.build("String_Node_Str",bean));
    }
  }
;
  beans.setOutputMarkupId(true);
  beans.setReuseItems(reuseItem);
  beans.setRenderBodyOnly(true);
  checkGroup.add(beans);
}