Program: 122692
Project: 122692
Buggy source:
public void createControls(Composite parent){
  composite=widgetFactory.createFlatFormComposite(parent);
  adapterFactory=new BusinessItemProviderAdapterFactory();
  tableViewer=new TableViewer(composite,SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
  tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
  tableViewer.setLabelProvider(new RepositoryFactoryProxyLabelProvider(adapterFactory));
  Table table=tableViewer.getTable();
  TableLayout tableLayout=new TableLayout();
  table.setLayout(tableLayout);
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  final String[] columnProperties=new String[]{Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str")};
  TableColumn column1=new TableColumn(table,SWT.NONE);
  tableLayout.addColumnData(new ColumnPixelData(125,true));
  column1.setText(columnProperties[0]);
  TableColumn column2=new TableColumn(table,SWT.NONE);
  tableLayout.addColumnData(new ColumnPixelData(125,true));
  column2.setText(columnProperties[1]);
  TableColumn column3=new TableColumn(table,SWT.NONE);
  tableLayout.addColumnData(new ColumnWeightData(1,150,true));
  column3.setText(columnProperties[2]);
  tableViewer.setColumnProperties(columnProperties);
  final IItemPropertyDescriptor itemPropertyDescriptor=getItemPropertyDescriptor();
  tableViewer.setCellModifier(new ICellModifier(){
    public boolean canModify(    Object element,    String property){
      return property.equals(columnProperties[2]);
    }
    public Object getValue(    Object element,    String property){
      return EmfPropertyHelper.getValue(itemPropertyDescriptor,element);
    }
    public void modify(    Object element,    String property,    Object value){
      if (element instanceof TableItem) {
        TableItem tableItem=(TableItem)element;
        itemPropertyDescriptor.setPropertyValue(tableItem.getData(),value);
      }
    }
  }
);
  CellEditor[] cellEditors=new CellEditor[3];
  cellEditors[2]=new TextCellEditor(table);
  tableViewer.setCellEditors(cellEditors);
  createSelectionListener();
  createPopupMenu();
  createDoubleClickListener();
  handleLayout(parent,table,column1,column2,column3);
}

Fixed version (ground truth):
public void createControls(Composite parent){
  composite=widgetFactory.createFlatFormComposite(parent);
  adapterFactory=new BusinessItemProviderAdapterFactory();
  tableViewer=new TableViewer(composite,SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
  tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
  tableViewer.setLabelProvider(new RepositoryFactoryProxyLabelProvider(adapterFactory));
  Table table=tableViewer.getTable();
  TableLayout tableLayout=new TableLayout();
  table.setLayout(tableLayout);
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  final String[] columnProperties=new String[]{Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str")};
  TableColumn column1=new TableColumn(table,SWT.NONE);
  tableLayout.addColumnData(new ColumnPixelData(125,true));
  column1.setText(columnProperties[0]);
  TableColumn column2=new TableColumn(table,SWT.NONE);
  tableLayout.addColumnData(new ColumnPixelData(125,true));
  column2.setText(columnProperties[1]);
  TableColumn column3=new TableColumn(table,SWT.NONE);
  tableLayout.addColumnData(new ColumnWeightData(1,150,true));
  column3.setText(columnProperties[2]);
  tableViewer.setColumnProperties(columnProperties);
  final IItemPropertyDescriptor itemPropertyDescriptor=getItemPropertyDescriptor();
  tableViewer.setCellModifier(new ICellModifier(){
    @Override public boolean canModify(    Object element,    String property){
      return property.equals(columnProperties[2]);
    }
    @Override public Object getValue(    Object element,    String property){
      return EmfPropertyHelper.getValue(itemPropertyDescriptor,element);
    }
    @Override public void modify(    Object element,    String property,    Object value){
      if (element instanceof TableItem) {
        TableItem tableItem=(TableItem)element;
        itemPropertyDescriptor.setPropertyValue(tableItem.getData(),value);
      }
    }
  }
);
  CellEditor[] cellEditors=new CellEditor[3];
  cellEditors[2]=new TextCellEditor(table);
  tableViewer.setCellEditors(cellEditors);
  createSelectionListener();
  createPopupMenu();
  createDoubleClickListener();
  handleLayout(parent,table,column1,column2,column3);
}