Program: 128917
Project: 128917
Buggy source:
private void handleAddedEvent(final ListenableListEvent event){
  int indexStart=event.index;
  if (tableViewerCreator.getTable().isDisposed()) {
    return;
  }
  if (!(tableViewerCreator.getContentProvider() instanceof ILazyContentProvider)) {
    TableItem[] items=tableViewerCreator.getTable().getItems();
    List<TableEditor> addedTableEditor=new ArrayList<TableEditor>();
    for (    TableItem item : items) {
      TableItem tableItem=item;
      if (previousItemsHash == null || !previousItemsHash.contains(tableItem)) {
        for (int iEditorCol=0; iEditorCol < columnsWithEditorContent.size(); iEditorCol++) {
          TableViewerCreatorColumnNotModifiable column=columnsWithEditorContent.get(iEditorCol);
          TableEditorContentNotModifiable tableEditorContent=column.getTableEditorContent();
          String idProperty=column.getId();
          TableEditor tableEditor=addTableEditor(column,tableEditorContent,idProperty,tableItem);
          if (tableEditor != null) {
            addedTableEditor.add(tableEditor);
          }
        }
      }
    }
    for (int i=indexStart; i < items.length; i++) {
      TableItem tableItem=items[i];
      Object data=tableItem.getData();
      Collection<TableEditor> tableEditorCollection=dataToMultipleDataEditor.getCollection(data);
      for (      TableEditor tableEditor : tableEditorCollection) {
        tableEditor.setItem(tableItem);
      }
    }
    previousItemsHash=new HashSet<TableItem>(Arrays.asList(items));
  }
 else {
    refreshColumn(indexStart);
  }
}

Fixed version (ground truth):
private void handleAddedEvent(final ListenableListEvent event){
  int indexStart=event.index;
  if (tableViewerCreator.getTable().isDisposed()) {
    return;
  }
  if (!(tableViewerCreator.getContentProvider() instanceof ILazyContentProvider)) {
    TableItem[] items=tableViewerCreator.getTable().getItems();
    List<TableEditor> addedTableEditor=new ArrayList<TableEditor>();
    for (    TableItem item : items) {
      TableItem tableItem=item;
      if (previousItemsHash == null || !previousItemsHash.contains(tableItem)) {
        for (int iEditorCol=0; iEditorCol < columnsWithEditorContent.size(); iEditorCol++) {
          TableViewerCreatorColumnNotModifiable column=columnsWithEditorContent.get(iEditorCol);
          TableEditorContentNotModifiable tableEditorContent=column.getTableEditorContent();
          String idProperty=column.getId();
          TableEditor tableEditor=addTableEditor(column,tableEditorContent,idProperty,tableItem);
          if (tableEditor != null) {
            addedTableEditor.add(tableEditor);
          }
        }
      }
    }
    for (int i=indexStart; i < items.length; i++) {
      TableItem tableItem=items[i];
      Object data=tableItem.getData();
      Collection<TableEditor> tableEditorCollection=dataToMultipleDataEditor.getCollection(data);
      for (      TableEditor tableEditor : tableEditorCollection) {
        tableEditor.setItem(tableItem);
      }
    }
    previousItemsHash=new HashSet<TableItem>(Arrays.asList(items));
  }
 else {
    for (int i=0; i < event.addedObjects.size(); i++) {
      refreshColumn(indexStart + i);
    }
  }
}