Program: 136526
Project: 136526
Buggy source:
/** 
 * DOC xqliu Comment method "createTable".
 * @param parent
 */
private Table createTable(Composite parent){
  int style=SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL| SWT.V_SCROLL| SWT.FULL_SELECTION| SWT.HIDE_SELECTION;
  final Table table=new Table(parentComposite,style);
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  table.setLayoutData(new GridData(GridData.FILL_BOTH));
  for (int i=0; i < headers.length; ++i) {
    TableColumn tableColumn=new TableColumn(table,SWT.LEFT,i);
    tableColumn.setText(headers[i]);
    tableColumn.setWidth(widths[i]);
  }
  myTableViewer=new TableViewer(table);
  myTableViewer.setUseHashlookup(true);
  myTableViewer.setColumnProperties(headers);
  CellEditor[] editors=new CellEditor[headers.length];
  for (int i=0; i < editors.length; ++i) {
switch (i) {
case 1:
case 5:
      editors[i]=new TextCellEditor(table);
    break;
case 3:
  editors[i]=new ComboBoxCellEditor(table,OPERATORS,SWT.READ_ONLY);
break;
default :
editors[i]=null;
}
}
myTableViewer.setCellEditors(editors);
myTableViewer.setCellModifier(new JoinElementCellModifier(headers,myTableViewer));
myTableViewer.setContentProvider(new JoinElementContentProvider());
myTableViewer.setLabelProvider(new JoinElementLabelProvider());
myTableViewer.setInput(this.myJoinElement);
table.setMenu(createMenus(table));
ColumnViewerDND.installDND(table);
table.setData(this);
GridData tableGD=new GridData(GridData.FILL_BOTH);
tableGD.heightHint=130;
table.setLayoutData(tableGD);
return table;
}

Fixed version (ground truth):
/** 
 * DOC xqliu Comment method "createTable".
 * @param parent
 */
private Table createTable(Composite parent){
  int style=SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL| SWT.V_SCROLL| SWT.FULL_SELECTION| SWT.HIDE_SELECTION;
  final Table table=new Table(parentComposite,style);
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  table.setLayoutData(new GridData(GridData.FILL_BOTH));
  String[] headers={DefaultMessagesImpl.getString("String_Node_Str"),DefaultMessagesImpl.getString("String_Node_Str"),DefaultMessagesImpl.getString("String_Node_Str"),DefaultMessagesImpl.getString("String_Node_Str"),DefaultMessagesImpl.getString("String_Node_Str"),DefaultMessagesImpl.getString("String_Node_Str"),DefaultMessagesImpl.getString("String_Node_Str")};
  int[] widths={100,100,100,70,100,100,100};
  for (int i=0; i < headers.length; ++i) {
    TableColumn tableColumn=new TableColumn(table,SWT.LEFT,i);
    tableColumn.setText(headers[i]);
    tableColumn.setWidth(widths[i]);
  }
  myTableViewer=new TableViewer(table);
  myTableViewer.setUseHashlookup(true);
  myTableViewer.setColumnProperties(headers);
  CellEditor[] editors=new CellEditor[headers.length];
  for (int i=0; i < editors.length; ++i) {
switch (i) {
case 1:
case 5:
      editors[i]=new TextCellEditor(table);
    break;
case 3:
  editors[i]=new ComboBoxCellEditor(table,PluginConstant.OPERATORS,SWT.READ_ONLY);
break;
default :
editors[i]=null;
}
}
myTableViewer.setCellEditors(editors);
myTableViewer.setCellModifier(new JoinElementCellModifier(headers,myTableViewer));
myTableViewer.setContentProvider(new JoinElementContentProvider());
myTableViewer.setLabelProvider(new JoinElementLabelProvider());
myTableViewer.setInput(this.myJoinElement);
table.setMenu(createMenus(table));
ColumnViewerDND.installDND(table);
table.setData(this);
GridData tableGD=new GridData(GridData.FILL_BOTH);
tableGD.heightHint=130;
table.setLayoutData(tableGD);
return table;
}