Program: 140581
Project: 140581
Buggy source:
@Override public void createPartControl(Composite parent){
  super.createPartControl(parent);
  this.addViewerFilter(EMFObjFilter.FILTER_ID);
  this.addViewerFilter(ReportingFilter.FILTER_ID);
  adjustFilter();
  activateContext();
  this.getCommonViewer().setSorter(null);
  this.getCommonViewer().getTree().addTreeListener(new TreeAdapter(){
    @Override public void treeExpanded(    TreeEvent e){
      TreeItem item=(TreeItem)e.item;
      if (!item.getText().endsWith("String_Node_Str")) {
        Object obj=item.getData();
        if (obj instanceof TableFolderNode || obj instanceof ViewFolderNode || obj instanceof ColumnFolderNode) {
          item.setText(item.getText() + "String_Node_Str" + item.getItemCount()+ "String_Node_Str");
          getCommonViewer().getTree().layout();
        }
      }
      super.treeExpanded(e);
    }
  }
);
  this.getCommonViewer().getTree().addMouseListener(new MouseAdapter(){
    @Override public void mouseDoubleClick(    MouseEvent e){
      Tree tree=(Tree)e.getSource();
      Point point=new Point(e.x,e.y);
      TreeItem item=tree.getItem(point);
      if (item != null && !item.getText().endsWith("String_Node_Str")) {
        Object obj=item.getData();
        if (obj instanceof AbstractFolderNode) {
          AbstractFolderNode node=(AbstractFolderNode)obj;
          node.loadChildren();
          Object[] children=node.getChildren();
          if (children != null) {
            item.setText(item.getText() + "String_Node_Str" + children.length+ "String_Node_Str");
          }
          getCommonViewer().getTree().layout();
        }
      }
      super.mouseDoubleClick(e);
    }
  }
);
}

Fixed version (ground truth):
@Override public void createPartControl(Composite parent){
  super.createPartControl(parent);
  this.addViewerFilter(EMFObjFilter.FILTER_ID);
  this.addViewerFilter(ReportingFilter.FILTER_ID);
  adjustFilter();
  activateContext();
  this.getCommonViewer().setSorter(null);
  this.getCommonViewer().getTree().addTreeListener(new TreeAdapter(){
    @Override public void treeExpanded(    TreeEvent e){
      TreeItem item=(TreeItem)e.item;
      if (!item.getText().endsWith("String_Node_Str")) {
        Object obj=item.getData();
        if (obj instanceof TableFolderNode || obj instanceof ViewFolderNode || obj instanceof ColumnFolderNode) {
          item.setText(item.getText() + "String_Node_Str" + item.getItemCount()+ "String_Node_Str");
        }
      }
      super.treeExpanded(e);
    }
  }
);
  this.getCommonViewer().getTree().addMouseListener(new MouseAdapter(){
    @Override public void mouseDoubleClick(    MouseEvent e){
      Tree tree=(Tree)e.getSource();
      Point point=new Point(e.x,e.y);
      TreeItem item=tree.getItem(point);
      if (item != null) {
        Object obj=item.getData();
        if (obj instanceof AbstractFolderNode) {
          AbstractFolderNode node=(AbstractFolderNode)obj;
          node.loadChildren();
          Object[] children=node.getChildren();
          if (children != null) {
            if (item.getText().indexOf("String_Node_Str") > 0) {
              item.setText(item.getText().substring(0,item.getText().indexOf("String_Node_Str")) + "String_Node_Str" + children.length+ "String_Node_Str");
            }
 else {
              item.setText(item.getText() + "String_Node_Str" + children.length+ "String_Node_Str");
            }
          }
        }
      }
      super.mouseDoubleClick(e);
    }
  }
);
}