Program: 137087
Project: 137087
Buggy source:
/** 
 * DOC zshen Comment method "initTable".
 * @param headers the name of column
 * @param columnMap all of columns which can be used by current Table
 * @param pixelDataOfHeaders the width of the column
 */
public void initTable(List<String> headers,List<MetadataColumn> columnMap){
  TableLayout tLayout=new TableLayout();
  innerTable.setLayout(tLayout);
  innerTable.setHeaderVisible(true);
  innerTable.setLinesVisible(true);
  GridData gd=new GridData(GridData.FILL_BOTH);
  innerTable.setLayoutData(gd);
  for (int index=0; index < headers.size(); index++) {
    String columnLabel=getInternationalizedLabel(headers.get(index));
    if (columnLabel != null) {
      if (columnLabel.length() == 1) {
        columnLabel=columnLabel + PluginConstant.SPACE_STRING + PluginConstant.SPACE_STRING;
      }
      tLayout.addColumnData(new ColumnPixelData(columnLabel.length() * getHeaderDisplayWeight(index)));
      new TableColumn(innerTable,SWT.LEFT).setText(columnLabel);
    }
  }
  CellEditor[] editors=getCellEditor(headers,columnMap);
  addContextMenu();
  AbstractMatchCellModifier<T> cellModifier=getTableCellModifier();
  if (cellModifier != null) {
    cellModifier.setColumnMap(columnMap);
    this.setCellModifier(cellModifier);
  }
  this.setCellEditors(editors);
  this.setColumnProperties(headers.toArray(new String[headers.size()]));
  this.setContentProvider(getTableContentProvider());
  this.setLabelProvider(getTableLabelProvider());
  GridData tableGD=new GridData(GridData.FILL_BOTH);
  tableGD.heightHint=getTableHeightHint();
  innerTable.setLayoutData(tableGD);
}

Fixed version (ground truth):
/** 
 * DOC zshen Comment method "initTable".
 * @param headers the name of column
 * @param columnMap all of columns which can be used by current Table
 * @param pixelDataOfHeaders the width of the column
 */
public void initTable(List<String> headers,List<MetadataColumn> columnMap){
  TableLayout tLayout=new TableLayout();
  innerTable.setLayout(tLayout);
  innerTable.setHeaderVisible(true);
  innerTable.setLinesVisible(true);
  GridData gd=new GridData(GridData.FILL_BOTH);
  innerTable.setLayoutData(gd);
  for (int index=0; index < headers.size(); index++) {
    String columnLabel=headers.get(index);
    if (columnLabel != null) {
      if (columnLabel.length() == 1) {
        columnLabel=columnLabel + PluginConstant.SPACE_STRING + PluginConstant.SPACE_STRING;
      }
      tLayout.addColumnData(new ColumnPixelData(columnLabel.length() * getHeaderDisplayWeight(index)));
      new TableColumn(innerTable,SWT.LEFT).setText(columnLabel);
    }
  }
  CellEditor[] editors=getCellEditor(headers,columnMap);
  addContextMenu();
  AbstractMatchCellModifier<T> cellModifier=getTableCellModifier();
  if (cellModifier != null) {
    cellModifier.setColumnMap(columnMap);
    this.setCellModifier(cellModifier);
  }
  this.setCellEditors(editors);
  this.setColumnProperties(headers.toArray(new String[headers.size()]));
  this.setContentProvider(getTableContentProvider());
  this.setLabelProvider(getTableLabelProvider());
  GridData tableGD=new GridData(GridData.FILL_BOTH);
  tableGD.heightHint=getTableHeightHint();
  innerTable.setLayoutData(tableGD);
}