Program: 140792
Project: 140792
Buggy source:
public void setElements(final ColumnIndicator[] elements){
  this.tree.dispose();
  this.tree=createTree(this.parentComp);
  this.columnIndicators=elements;
  for (int i=0; i < elements.length; i++) {
    final TreeItem treeItem=new TreeItem(tree,SWT.NONE);
    final ColumnIndicator columnIndicator=(ColumnIndicator)elements[i];
    treeItem.setImage(ImageLib.getImage(ImageLib.TD_COLUMN));
    String columnName=columnIndicator.getTdColumn().getName();
    treeItem.setText(0,columnName != null ? columnName + PluginConstant.SPACE_STRING + PluginConstant.PARENTHESIS_LEFT+ columnIndicator.getTdColumn().getSqlDataType().getName()+ PluginConstant.PARENTHESIS_RIGHT : "String_Node_Str");
    treeItem.setData(COLUMN_INDICATOR_VALUE,columnIndicator);
    TreeEditor editor=new TreeEditor(tree);
    final CCombo combo=new CCombo(tree,SWT.BORDER);
    for (    DataminingType type : DataminingType.values()) {
      combo.add(type.getLiteral());
    }
    if (columnIndicator.getDataminingType() == null) {
      combo.select(0);
    }
 else {
      combo.setText(columnIndicator.getDataminingType().getLiteral());
    }
    combo.addSelectionListener(new SelectionAdapter(){
      public void widgetSelected(      SelectionEvent e){
        columnIndicator.setDataminingType(DataminingType.get(combo.getText()));
        setDirty(true);
      }
    }
);
    combo.setEditable(false);
    editor.minimumWidth=WIDTH1_CELL;
    editor.setEditor(combo,treeItem,1);
    editor=new TreeEditor(tree);
    Label delLabel=new Label(tree,SWT.NONE);
    delLabel.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
    delLabel.setImage(ImageLib.getImage(ImageLib.ACTION_DELETE));
    delLabel.setToolTipText("String_Node_Str");
    delLabel.pack();
    delLabel.addMouseListener(new MouseAdapter(){
      @Override public void mouseDown(      MouseEvent e){
        deleteColumnItems(columnIndicator);
        setElements(columnIndicators);
      }
    }
);
    editor.minimumWidth=WIDTH1_CELL;
    editor.horizontalAlignment=SWT.CENTER;
    editor.setEditor(delLabel,treeItem,2);
    if (columnIndicator.hasIndicators()) {
      createIndicatorItems(treeItem,columnIndicator.getIndicatorUnits());
    }
    treeItem.setExpanded(true);
  }
  this.setDirty(true);
}

Fixed version (ground truth):
public void setElements(final ColumnIndicator[] elements){
  this.tree.dispose();
  this.tree=createTree(this.parentComp);
  this.columnIndicators=elements;
  for (int i=0; i < elements.length; i++) {
    final TreeItem treeItem=new TreeItem(tree,SWT.NONE);
    final ColumnIndicator columnIndicator=(ColumnIndicator)elements[i];
    treeItem.setImage(ImageLib.getImage(ImageLib.TD_COLUMN));
    String columnName=columnIndicator.getTdColumn().getName();
    treeItem.setText(0,columnName != null ? columnName + PluginConstant.SPACE_STRING + PluginConstant.PARENTHESIS_LEFT+ columnIndicator.getTdColumn().getSqlDataType().getName()+ PluginConstant.PARENTHESIS_RIGHT : "String_Node_Str");
    treeItem.setData(COLUMN_INDICATOR_KEY,columnIndicator);
    TreeEditor editor=new TreeEditor(tree);
    final CCombo combo=new CCombo(tree,SWT.BORDER);
    for (    DataminingType type : DataminingType.values()) {
      combo.add(type.getLiteral());
    }
    if (columnIndicator.getDataminingType() == null) {
      combo.select(0);
    }
 else {
      combo.setText(columnIndicator.getDataminingType().getLiteral());
    }
    combo.addSelectionListener(new SelectionAdapter(){
      public void widgetSelected(      SelectionEvent e){
        columnIndicator.setDataminingType(DataminingType.get(combo.getText()));
        setDirty(true);
      }
    }
);
    combo.setEditable(false);
    editor.minimumWidth=WIDTH1_CELL;
    editor.setEditor(combo,treeItem,1);
    editor=new TreeEditor(tree);
    Label delLabel=new Label(tree,SWT.NONE);
    delLabel.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
    delLabel.setImage(ImageLib.getImage(ImageLib.ACTION_DELETE));
    delLabel.setToolTipText("String_Node_Str");
    delLabel.pack();
    delLabel.addMouseListener(new MouseAdapter(){
      @Override public void mouseDown(      MouseEvent e){
        deleteColumnItems(columnIndicator);
        if (treeItem.getParentItem() != null && treeItem.getParentItem().getData(INDICATOR_UNIT_KEY) != null) {
          setElements(columnIndicators);
        }
 else {
          removeItemBranch(treeItem);
        }
      }
    }
);
    editor.minimumWidth=WIDTH1_CELL;
    editor.horizontalAlignment=SWT.CENTER;
    editor.setEditor(delLabel,treeItem,2);
    treeItem.setData(ITEM_EDITOR_KEY,new TreeEditor[]{editor});
    if (columnIndicator.hasIndicators()) {
      createIndicatorItems(treeItem,columnIndicator.getIndicatorUnits());
    }
    treeItem.setExpanded(true);
  }
  this.setDirty(true);
}