Program: 128818
Project: 128818
Buggy source:
/** 
 * Instantiate the <code>Table</code> with the <code>compositeParent</code> as parent, with pre-configured styles and options.
 * @return
 */
public Table createTable(){
  if (this.table != null) {
    this.table.dispose();
  }
  this.table=new Table(compositeParent,checkTableStyles());
  tableViewer=new TableViewer(table){
    @Override public void add(    Object element){
      super.add(element);
    }
    @Override public void add(    Object[] elements){
      super.add(elements);
    }
    @Override public void insert(    Object element,    int position){
      super.insert(element,position);
      refreshTableEditorControls();
    }
    @Override public void remove(    Object[] elements){
      super.remove(elements);
    }
    @Override public void replace(    Object element,    int index){
      super.replace(element,index);
      refreshTableEditorColumn(index);
      if (!(contentProvider instanceof ILazyContentProvider)) {
        refreshTableEditorControls();
      }
    }
    @Override public void refresh(){
      super.refresh();
    }
    @Override public void refresh(    boolean updateLabels){
      super.refresh(updateLabels);
    }
    @Override public void refresh(    Object element,    boolean updateLabels){
      super.refresh(element,updateLabels);
      refreshTableEditorControls();
    }
    @Override public void refresh(    Object element){
      if (table.isDisposed()) {
        return;
      }
      for (      TableItem item : table.getItems()) {
        if (item.isDisposed()) {
          return;
        }
      }
      super.refresh(element);
    }
    @Override protected void triggerEditorActivationEvent(    ColumnViewerEditorActivationEvent event){
      if (editorActivate) {
        super.triggerEditorActivationEvent(event);
      }
    }
    @Override protected void inputChanged(    Object input,    Object oldInput){
      if (input instanceof List && contentProvider instanceof ILazyContentProvider) {
        int newSize=((List)input).size();
        int oldSize=0;
        if (oldInput instanceof List) {
          oldSize=((List)oldInput).size();
        }
        if (newSize != oldSize) {
          tableViewer.setItemCount(newSize);
        }
      }
      super.inputChanged(input,oldInput);
    }
  }
;
  setTablePreferences();
  return table;
}

Fixed version (ground truth):
/** 
 * Instantiate the <code>Table</code> with the <code>compositeParent</code> as parent, with pre-configured styles and options.
 * @return
 */
public Table createTable(){
  if (this.table != null) {
    this.table.dispose();
  }
  this.table=new Table(compositeParent,checkTableStyles());
  tableViewer=new TableViewer(table){
    @Override public void add(    Object element){
      super.add(element);
    }
    @Override public void add(    Object[] elements){
      super.add(elements);
    }
    @Override public void insert(    Object element,    int position){
      super.insert(element,position);
    }
    @Override public void remove(    Object[] elements){
      super.remove(elements);
    }
    @Override public void replace(    Object element,    int index){
      super.replace(element,index);
      refreshTableEditorControls();
    }
    @Override public void refresh(){
      super.refresh();
    }
    @Override public void refresh(    boolean updateLabels){
      super.refresh(updateLabels);
    }
    @Override public void refresh(    Object element,    boolean updateLabels){
      super.refresh(element,updateLabels);
      refreshTableEditorControls();
    }
    @Override public void refresh(    Object element){
      if (table.isDisposed()) {
        return;
      }
      for (      TableItem item : table.getItems()) {
        if (item.isDisposed()) {
          return;
        }
      }
      super.refresh(element);
    }
    @Override protected void triggerEditorActivationEvent(    ColumnViewerEditorActivationEvent event){
      if (editorActivate) {
        super.triggerEditorActivationEvent(event);
      }
    }
    @Override protected void hookControl(    Control control){
      super.hookControl(control);
      table.addListener(SWT.SetData,new Listener(){
        @Override public void handleEvent(        Event event){
          TableItem item=(TableItem)event.item;
          int index=table.indexOf(item);
          if (index == -1) {
            return;
          }
          B element=getInputList().get(index);
          associate(element,item);
          updateItem(item,element);
          refreshTableEditorColumn(index);
        }
      }
);
    }
  }
;
  setTablePreferences();
  return table;
}