Program: 148753
Project: 148753
Buggy source:
/** 
 * This is a callback that will allow us to create the viewer and initialize it.
 */
public void createPartControl(Composite parent){
  viewer=createTreeViewer(parent);
  drillDownAdapter=new DrillDownAdapter(viewer);
  contentProvider=new ServerTreeContentProvider(this.getSite(),new TreeParent("String_Node_Str",null,TreeObject._ROOT_,null,null));
  setTreeContentProvider(contentProvider);
  viewer.setLabelProvider(new ServerTreeLabelProvider());
  viewer.setSorter(new ViewerSorter(){
    public int category(    Object element){
      if (element instanceof TreeParent) {
        TreeParent category=(TreeParent)element;
        if (category.getType() == TreeObject.CATEGORY_FOLDER)         return -1;
      }
      return 0;
    }
  }
);
  viewer.setInput(getViewSite());
  viewer.addSelectionChangedListener(new ISelectionChangedListener(){
    public void selectionChanged(    SelectionChangedEvent event){
      TreeObject xobject=(TreeObject)((IStructuredSelection)viewer.getSelection()).getFirstElement();
      if (xobject != null && xobject.getType() == TreeObject.DATA_CLUSTER && xobject.isXObject()) {
        try {
          XtentisPort port=Util.getPort(new URL(xobject.getEndpointAddress()),xobject.getUniverse(),xobject.getUsername(),xobject.getPassword());
          WSDataCluster wsObject=port.getDataCluster(new WSGetDataCluster((WSDataClusterPK)xobject.getWsKey()));
          String tip="String_Node_Str";
          if (wsObject != null && wsObject.getDescription() != null) {
            tip=wsObject.getDescription();
            viewer.getControl().setToolTipText(tip);
          }
        }
 catch (        MalformedURLException e) {
          e.printStackTrace();
        }
catch (        XtentisException e) {
          e.printStackTrace();
        }
catch (        RemoteException e) {
          e.printStackTrace();
        }
      }
    }
  }
);
  viewer.getTree().addTreeListener(new TreeListener(){
    public void treeExpanded(    TreeEvent event){
      if (event.item.getData() instanceof TreeParent && ((TreeParent)event.item.getData()).getType() == TreeObject._SERVER_ && ((TreeParent)event.item.getData()).getChildrenList().size() == 1) {
        initServer((TreeParent)event.item.getData());
      }
    }
    public void treeCollapsed(    TreeEvent e){
    }
  }
);
  createTreeDragSource();
  createTreeDropTarget();
  makeActions();
  hookContextMenu();
  hookDoubleClickAction();
  hookKeyPressAction();
  contributeToActionBars();
  hookKeyboard();
  initView();
}

Fixed version (ground truth):
/** 
 * This is a callback that will allow us to create the viewer and initialize it.
 */
public void createPartControl(Composite parent){
  viewer=createTreeViewer(parent);
  drillDownAdapter=new DrillDownAdapter(viewer);
  contentProvider=new ServerTreeContentProvider(this.getSite(),new TreeParent("String_Node_Str",null,TreeObject._ROOT_,null,null));
  setTreeContentProvider(contentProvider);
  viewer.setLabelProvider(new ServerTreeLabelProvider());
  viewer.setSorter(new ViewerSorter(){
    public int category(    Object element){
      if (element instanceof TreeParent) {
        TreeParent category=(TreeParent)element;
        if (category.getType() == TreeObject.CATEGORY_FOLDER)         return -1;
      }
      return 0;
    }
  }
);
  viewer.setInput(getViewSite());
  viewer.getTree().addListener(SWT.MouseHover,new Listener(){
    public void handleEvent(    Event event){
      viewer.getControl().setToolTipText("String_Node_Str");
      TreeItem item=viewer.getTree().getItem(new Point(event.x,event.y));
      TreeObject xobject=(TreeObject)item.getData();
      if (xobject != null && xobject.getType() == TreeObject.DATA_CLUSTER && xobject.isXObject()) {
        try {
          XtentisPort port=Util.getPort(new URL(xobject.getEndpointAddress()),xobject.getUniverse(),xobject.getUsername(),xobject.getPassword());
          WSDataCluster wsObject=port.getDataCluster(new WSGetDataCluster((WSDataClusterPK)xobject.getWsKey()));
          String tip="String_Node_Str";
          if (wsObject != null && wsObject.getDescription() != null) {
            tip=wsObject.getDescription();
            viewer.getControl().setToolTipText(tip);
          }
        }
 catch (        MalformedURLException e) {
          e.printStackTrace();
        }
catch (        XtentisException e) {
          e.printStackTrace();
        }
catch (        RemoteException e) {
          e.printStackTrace();
        }
      }
 else       viewer.getControl().setToolTipText("String_Node_Str");
    }
  }
);
  viewer.getTree().addTreeListener(new TreeListener(){
    public void treeExpanded(    TreeEvent event){
      if (event.item.getData() instanceof TreeParent && ((TreeParent)event.item.getData()).getType() == TreeObject._SERVER_ && ((TreeParent)event.item.getData()).getChildrenList().size() == 1) {
        initServer((TreeParent)event.item.getData());
      }
    }
    public void treeCollapsed(    TreeEvent e){
    }
  }
);
  createTreeDragSource();
  createTreeDropTarget();
  makeActions();
  hookContextMenu();
  hookDoubleClickAction();
  hookKeyPressAction();
  contributeToActionBars();
  hookKeyboard();
  initView();
}