Program: 102071
Project: 102071
Buggy source:
private void createFixedColumnInfoGroup(Composite parent){
  Group columnInfoGroup=WidgetFactory.createGroup(parent,getString("String_Node_Str"),SWT.NONE,1,1);
  GridData gd=new GridData(GridData.FILL_BOTH);
  gd.heightHint=GROUP_HEIGHT_160;
  columnInfoGroup.setLayoutData(gd);
  Table table=new Table(columnInfoGroup,SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL| SWT.BORDER);
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  table.setLayout(new TableLayout());
  table.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  this.fixedColumnsViewer=new TableViewer(table);
  GridData data=new GridData(GridData.FILL_BOTH);
  this.fixedColumnsViewer.getControl().setLayoutData(data);
  TableViewerColumn column=new TableViewerColumn(this.fixedColumnsViewer,SWT.LEFT);
  column.getColumn().setText(getString("String_Node_Str") + getSpaces(36));
  column.setEditingSupport(new ColumnNameEditingSupport(this.fixedColumnsViewer));
  column.setLabelProvider(new ColumnDataLabelProvider(0));
  column.getColumn().pack();
  column=new TableViewerColumn(this.fixedColumnsViewer,SWT.LEFT);
  column.getColumn().setText(getString("String_Node_Str") + getSpaces(12));
  column.setLabelProvider(new ColumnDataLabelProvider(1));
  column.setEditingSupport(new DatatypeEditingSupport(this.fixedColumnsViewer));
  column.getColumn().pack();
  column=new TableViewerColumn(this.fixedColumnsViewer,SWT.LEFT);
  column.getColumn().setText(getString("String_Node_Str") + getSpaces(12));
  column.setLabelProvider(new ColumnDataLabelProvider(2));
  column.setEditingSupport(new ColumnWidthEditingSupport(this.fixedColumnsViewer));
  column.getColumn().pack();
  if (this.dataFileInfo != null) {
    for (    ITeiidColumnInfo row : this.dataFileInfo.getColumnInfoList()) {
      this.fixedColumnsViewer.add(row);
    }
  }
  this.fixedColumnsViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    @Override public void selectionChanged(    SelectionChangedEvent event){
      IStructuredSelection sel=(IStructuredSelection)event.getSelection();
      if (sel.isEmpty()) {
        deleteColumnFixedButton.setEnabled(false);
        upColumnFixedButton.setEnabled(false);
        downColumnFixedButton.setEnabled(false);
      }
 else {
        boolean enable=true;
        Object[] objs=sel.toArray();
        ITeiidColumnInfo columnInfo=null;
        for (        Object obj : objs) {
          if (!(obj instanceof ITeiidColumnInfo)) {
            enable=false;
            break;
          }
 else {
            columnInfo=(ITeiidColumnInfo)obj;
          }
        }
        if (objs.length == 0) {
          enable=false;
        }
        deleteColumnFixedButton.setEnabled(enable);
        if (enable) {
          upColumnFixedButton.setEnabled(dataFileInfo.canMoveUp(columnInfo));
          downColumnFixedButton.setEnabled(dataFileInfo.canMoveDown(columnInfo));
        }
      }
    }
  }
);
}

Fixed version (ground truth):
private void createFixedColumnInfoGroup(Composite parent){
  Group columnInfoGroup=WidgetFactory.createGroup(parent,getString("String_Node_Str"),SWT.NONE,1,1);
  GridData gd=new GridData(GridData.FILL_BOTH);
  gd.heightHint=GROUP_HEIGHT_160;
  columnInfoGroup.setLayoutData(gd);
  this.fixedColumnsViewer=new TableViewer(columnInfoGroup,SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL| SWT.V_SCROLL| SWT.BORDER);
  Table table=this.fixedColumnsViewer.getTable();
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  table.setLayout(new TableLayout());
  table.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  GridData data=new GridData(GridData.FILL_BOTH);
  this.fixedColumnsViewer.getControl().setLayoutData(data);
  TableViewerColumn column=new TableViewerColumn(this.fixedColumnsViewer,SWT.LEFT);
  column.getColumn().setText(getString("String_Node_Str") + getSpaces(36));
  column.setEditingSupport(new ColumnNameEditingSupport(this.fixedColumnsViewer));
  column.setLabelProvider(new ColumnDataLabelProvider(0));
  column.getColumn().pack();
  column=new TableViewerColumn(this.fixedColumnsViewer,SWT.LEFT);
  column.getColumn().setText(getString("String_Node_Str") + getSpaces(12));
  column.setLabelProvider(new ColumnDataLabelProvider(1));
  column.setEditingSupport(new DatatypeEditingSupport(this.fixedColumnsViewer));
  column.getColumn().pack();
  column=new TableViewerColumn(this.fixedColumnsViewer,SWT.LEFT);
  column.getColumn().setText(getString("String_Node_Str") + getSpaces(12));
  column.setLabelProvider(new ColumnDataLabelProvider(2));
  column.setEditingSupport(new ColumnWidthEditingSupport(this.fixedColumnsViewer));
  column.getColumn().pack();
  if (this.dataFileInfo != null) {
    for (    ITeiidColumnInfo row : this.dataFileInfo.getColumnInfoList()) {
      this.fixedColumnsViewer.add(row);
    }
  }
  this.fixedColumnsViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    @Override public void selectionChanged(    SelectionChangedEvent event){
      IStructuredSelection sel=(IStructuredSelection)event.getSelection();
      if (sel.isEmpty()) {
        deleteColumnFixedButton.setEnabled(false);
        upColumnFixedButton.setEnabled(false);
        downColumnFixedButton.setEnabled(false);
      }
 else {
        boolean enable=true;
        Object[] objs=sel.toArray();
        ITeiidColumnInfo columnInfo=null;
        for (        Object obj : objs) {
          if (!(obj instanceof ITeiidColumnInfo)) {
            enable=false;
            break;
          }
 else {
            columnInfo=(ITeiidColumnInfo)obj;
          }
        }
        if (objs.length == 0) {
          enable=false;
        }
        deleteColumnFixedButton.setEnabled(enable);
        if (enable) {
          upColumnFixedButton.setEnabled(dataFileInfo.canMoveUp(columnInfo));
          downColumnFixedButton.setEnabled(dataFileInfo.canMoveDown(columnInfo));
        }
      }
    }
  }
);
}