Program: 107860
Project: 107860
Buggy source:
/** 
 * Creates a new instance.
 * @param parent
 * @param controller
 */
public ViewStatisticsClassificationAttributesInput(final Composite parent,final Controller controller){
  controller.addListener(ModelPart.INPUT,this);
  controller.addListener(ModelPart.MODEL,this);
  controller.addListener(ModelPart.SELECTED_FEATURES_OR_CLASSES,this);
  controller.addListener(ModelPart.ATTRIBUTE_TYPE,this);
  controller.addListener(ModelPart.OUTPUT,this);
  this.controller=controller;
  root=parent;
  root.setLayout(GridLayoutFactory.swtDefaults().numColumns(2).create());
  Label label=new Label(parent,SWT.LEFT);
  label.setText(Resources.getMessage("String_Node_Str"));
  label.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  label=new Label(parent,SWT.LEFT);
  label.setText(Resources.getMessage("String_Node_Str"));
  label.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  features=SWTUtil.createTableDynamic(parent,SWT.CHECK | SWT.V_SCROLL | SWT.H_SCROLL| SWT.BORDER);
  features.setLayoutData(GridDataFactory.fillDefaults().grab(true,true).span(1,1).create());
  features.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      Set<String> newSelection=new HashSet<String>();
      boolean update=fireEvent(arg0,features,model.getSelectedFeatures(),newSelection);
      if (update) {
        model.setSelectedFeatures(newSelection);
        controller.update(new ModelEvent(ViewStatisticsClassificationAttributesInput.this,ModelPart.SELECTED_FEATURES_OR_CLASSES,null));
      }
    }
  }
);
  DynamicTableColumn column0=new DynamicTableColumn(features,SWT.NONE);
  column0.setWidth("String_Node_Str","String_Node_Str");
  DynamicTableColumn column1=new DynamicTableColumn(features,SWT.NONE);
  column1.setWidth("String_Node_Str");
  DynamicTableColumn column2=new DynamicTableColumn(features,SWT.NONE);
  column2.setWidth("String_Node_Str");
  classes=SWTUtil.createTableDynamic(parent,SWT.CHECK | SWT.V_SCROLL | SWT.H_SCROLL| SWT.BORDER);
  classes.setLayoutData(GridDataFactory.fillDefaults().grab(true,true).span(1,1).create());
  classes.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      Set<String> newSelection=new HashSet<String>();
      boolean update=fireEvent(arg0,classes,model.getSelectedClasses(),newSelection);
      if (update) {
        model.setSelectedClasses(newSelection);
        controller.update(new ModelEvent(ViewStatisticsClassificationAttributesInput.this,ModelPart.SELECTED_FEATURES_OR_CLASSES,null));
      }
    }
  }
);
  DynamicTableColumn column3=new DynamicTableColumn(classes,SWT.NONE);
  column3.setWidth("String_Node_Str","String_Node_Str");
  DynamicTableColumn column4=new DynamicTableColumn(classes,SWT.NONE);
  column4.setWidth("String_Node_Str");
  reset();
}

Fixed version (ground truth):
/** 
 * Creates a new instance.
 * @param parent
 * @param controller
 */
public ViewStatisticsClassificationAttributesInput(final Composite parent,final Controller controller){
  controller.addListener(ModelPart.INPUT,this);
  controller.addListener(ModelPart.MODEL,this);
  controller.addListener(ModelPart.SELECTED_FEATURES_OR_CLASSES,this);
  controller.addListener(ModelPart.ATTRIBUTE_TYPE,this);
  controller.addListener(ModelPart.DATA_TYPE,this);
  controller.addListener(ModelPart.OUTPUT,this);
  this.controller=controller;
  root=parent;
  root.setLayout(GridLayoutFactory.swtDefaults().numColumns(2).create());
  Label label=new Label(parent,SWT.LEFT);
  label.setText(Resources.getMessage("String_Node_Str"));
  label.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  label=new Label(parent,SWT.LEFT);
  label.setText(Resources.getMessage("String_Node_Str"));
  label.setLayoutData(SWTUtil.createFillHorizontallyGridData());
  features=SWTUtil.createTableDynamic(parent,SWT.CHECK | SWT.V_SCROLL | SWT.H_SCROLL| SWT.BORDER);
  features.setLayoutData(GridDataFactory.fillDefaults().grab(true,true).span(1,1).create());
  features.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      Set<String> newSelection=new HashSet<String>();
      boolean update=fireEvent(arg0,features,model.getSelectedFeatures(),newSelection);
      if (update) {
        model.setSelectedFeatures(newSelection);
        controller.update(new ModelEvent(ViewStatisticsClassificationAttributesInput.this,ModelPart.SELECTED_FEATURES_OR_CLASSES,null));
      }
    }
  }
);
  DynamicTableColumn column0=new DynamicTableColumn(features,SWT.NONE);
  column0.setWidth("String_Node_Str","String_Node_Str");
  DynamicTableColumn column1=new DynamicTableColumn(features,SWT.NONE);
  column1.setWidth("String_Node_Str");
  DynamicTableColumn column2=new DynamicTableColumn(features,SWT.NONE);
  column2.setWidth("String_Node_Str");
  classes=SWTUtil.createTableDynamic(parent,SWT.CHECK | SWT.V_SCROLL | SWT.H_SCROLL| SWT.BORDER);
  classes.setLayoutData(GridDataFactory.fillDefaults().grab(true,true).span(1,1).create());
  classes.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      Set<String> newSelection=new HashSet<String>();
      boolean update=fireEvent(arg0,classes,model.getSelectedClasses(),newSelection);
      if (update) {
        model.setSelectedClasses(newSelection);
        controller.update(new ModelEvent(ViewStatisticsClassificationAttributesInput.this,ModelPart.SELECTED_FEATURES_OR_CLASSES,null));
      }
    }
  }
);
  DynamicTableColumn column3=new DynamicTableColumn(classes,SWT.NONE);
  column3.setWidth("String_Node_Str","String_Node_Str");
  DynamicTableColumn column4=new DynamicTableColumn(classes,SWT.NONE);
  column4.setWidth("String_Node_Str");
  reset();
}