Program: 139131
Project: 139131
Buggy source:
/** 
 * @param parent
 */
private Tree createTree(Composite parent){
  final Tree newTree=new TooltipTree(parent,SWT.MULTI | SWT.BORDER){
    @Override protected boolean isValidItem(    TreeItem item){
      if (item == null) {
        return false;
      }
      Object itemData=item.getData(INDICATOR_UNIT_KEY);
      if (itemData != null) {
        IndicatorUnit indicatorUnit=(IndicatorUnit)item.getData(INDICATOR_UNIT_KEY);
        if (indicatorUnit != null && !(indicatorUnit.getIndicator() instanceof CompositeIndicator)) {
          return true;
        }
        return false;
      }
 else {
        return false;
      }
    }
    protected String getItemTooltipText(    TreeItem item){
      String expCont=isExpressionNull(item);
      if (expCont == null) {
        return DefaultMessagesImpl.getString("String_Node_Str");
      }
      return expCont;
    }
  }
;
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.FILL).grab(true,true).applyTo(newTree);
  newTree.setHeaderVisible(true);
  TreeColumn column1=new TreeColumn(newTree,SWT.CENTER);
  column1.setWidth(190);
  column1.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  TreeColumn column2=new TreeColumn(newTree,SWT.CENTER);
  column2.setWidth(120);
  column2.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  column2.setToolTipText(DefaultMessagesImpl.getString("String_Node_Str"));
  TreeColumn column3=new TreeColumn(newTree,SWT.CENTER);
  column3.setWidth(80);
  column3.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  TreeColumn column4=new TreeColumn(newTree,SWT.CENTER);
  column4.setWidth(80);
  column4.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  TreeColumn column5=new TreeColumn(newTree,SWT.CENTER);
  column5.setWidth(80);
  column5.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  parent.layout();
  AbstractAnalysisActionHandler actionHandler=new AbstractAnalysisActionHandler(parent){
    @Override protected void handleRemove(){
      removeSelectedElements(newTree);
    }
  }
;
  parent.setData(AbstractMetadataFormPage.ACTION_HANDLER,actionHandler);
  ColumnViewerDND.installDND(newTree);
  this.addTreeListener(newTree);
  newTree.setData(this);
  return newTree;
}

Fixed version (ground truth):
/** 
 * @param parent
 */
private Tree createTree(Composite parent){
  final Tree newTree=new TooltipTree(parent,SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION){
    @Override protected boolean isValidItem(    TreeItem item){
      if (item == null) {
        return false;
      }
      Object itemData=item.getData(INDICATOR_UNIT_KEY);
      if (itemData != null) {
        IndicatorUnit indicatorUnit=(IndicatorUnit)item.getData(INDICATOR_UNIT_KEY);
        if (indicatorUnit != null && !(indicatorUnit.getIndicator() instanceof CompositeIndicator)) {
          return true;
        }
        return false;
      }
 else {
        return false;
      }
    }
    protected String getItemTooltipText(    TreeItem item){
      String expCont=isExpressionNull(item);
      if (expCont == null) {
        return DefaultMessagesImpl.getString("String_Node_Str");
      }
      return expCont;
    }
  }
;
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.FILL).grab(true,true).applyTo(newTree);
  newTree.setHeaderVisible(true);
  TreeColumn column1=new TreeColumn(newTree,SWT.CENTER);
  column1.setWidth(190);
  column1.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  TreeColumn column2=new TreeColumn(newTree,SWT.CENTER);
  column2.setWidth(120);
  column2.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  column2.setToolTipText(DefaultMessagesImpl.getString("String_Node_Str"));
  TreeColumn column3=new TreeColumn(newTree,SWT.CENTER);
  column3.setWidth(80);
  column3.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  TreeColumn column4=new TreeColumn(newTree,SWT.CENTER);
  column4.setWidth(80);
  column4.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  TreeColumn column5=new TreeColumn(newTree,SWT.CENTER);
  column5.setWidth(80);
  column5.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  parent.layout();
  AbstractAnalysisActionHandler actionHandler=new AbstractAnalysisActionHandler(parent){
    @Override protected void handleRemove(){
      removeSelectedElements(newTree);
    }
  }
;
  parent.setData(AbstractMetadataFormPage.ACTION_HANDLER,actionHandler);
  ColumnViewerDND.installDND(newTree);
  this.addTreeListener(newTree);
  newTree.setData(this);
  return newTree;
}