Program: 76487
Project: 76487
Buggy source:
private void configTreeViewer(){
  ViewsTreeProvider provider=new SampleReportsExplorerProvider();
  samplesTree.setContentProvider(provider);
  samplesTree.setLabelProvider(provider);
  samplesTree.getTree().addSelectionListener(new SelectionListener(){
    public void widgetSelected(    SelectionEvent e){
      TreeItem item=(TreeItem)e.item;
      if (item != null) {
        if (item.getData() instanceof ReportDesignHandle) {
          String reportname=item.getText().substring(0,item.getText().lastIndexOf("String_Node_Str"));
          description.setText(DescriptionMessages.getDescription(reportname));
          previewSampleReport(reportname);
          setSelectedElement(item);
        }
 else         if (item.getText().equals("String_Node_Str")) {
          description.setText(DescriptionMessages.getDescription("String_Node_Str"));
          setSelectedElement(item.getData());
        }
 else {
          description.setText(Messages.getString("String_Node_Str"));
          setSelectedElement(item.getData());
        }
      }
    }
    public void widgetDefaultSelected(    SelectionEvent e){
    }
  }
);
  samplesTree.getTree().addDisposeListener(new DisposeListener(){
    public void widgetDisposed(    DisposeEvent e){
      Object input=samplesTree.getInput();
      if (input instanceof Object[]) {
        Object[] array=(Object[])input;
        for (int i=0; i < array.length; i++) {
          if (array[i] instanceof ResourceEntry)           ((ResourceEntry)array[i]).dispose();
        }
      }
    }
  }
);
  samplesTree.setSorter(new SampleReportsSorter());
}

Fixed version (ground truth):
private void configTreeViewer(){
  ViewsTreeProvider provider=new SampleReportsExplorerProvider();
  samplesTree.setContentProvider(provider);
  samplesTree.setLabelProvider(provider);
  samplesTree.getTree().addSelectionListener(new SelectionListener(){
    public void widgetSelected(    SelectionEvent e){
      TreeItem item=(TreeItem)e.item;
      if (item != null) {
        if (item.getData() instanceof ReportDesignHandle) {
          String reportname=item.getText().substring(0,item.getText().lastIndexOf("String_Node_Str"));
          description.setText(DescriptionMessages.getDescription(reportname));
          previewSampleReport(reportname);
          setSelectedElement(item);
        }
 else         if (item.getText().equals("String_Node_Str")) {
          description.setText(DescriptionMessages.getDescription("String_Node_Str"));
          setSelectedElement(item);
        }
 else {
          description.setText(Messages.getString("String_Node_Str"));
          setSelectedElement(item);
        }
      }
    }
    public void widgetDefaultSelected(    SelectionEvent e){
    }
  }
);
  samplesTree.getTree().addDisposeListener(new DisposeListener(){
    public void widgetDisposed(    DisposeEvent e){
      Object input=samplesTree.getInput();
      if (input instanceof Object[]) {
        Object[] array=(Object[])input;
        for (int i=0; i < array.length; i++) {
          if (array[i] instanceof ResourceEntry)           ((ResourceEntry)array[i]).dispose();
        }
      }
    }
  }
);
  samplesTree.setSorter(new SampleReportsSorter());
}