Program: 12136
Project: 12136
Buggy source:
/** 
 * This is a callback that will allow us to create the viewer and initialize it.
 */
public void createPartControl(Composite parent){
  tableViewer=new TableViewer(parent,SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL| SWT.BORDER| SWT.FULL_SELECTION);
  tableViewer.setContentProvider(new ViewContentProvider());
  tableViewer.setLabelProvider(new ViewLabelProvider());
  tableViewer.setSorter(new NameSorter());
  tableViewer.setInput(getViewSite());
  TableLayout layout=new TableLayout();
  layout.addColumnData(new ColumnWeightData(40,true));
  layout.addColumnData(new ColumnWeightData(60,true));
  layout.addColumnData(new ColumnWeightData(40,true));
  layout.addColumnData(new ColumnWeightData(40,true));
  tableViewer.getTable().setLayout(layout);
  tableViewer.getTable().setLinesVisible(true);
  tableViewer.getTable().setHeaderVisible(true);
  TableColumn column0=new TableColumn(tableViewer.getTable(),SWT.LEFT);
  column0.setText("String_Node_Str");
  column0.setResizable(true);
  column0.pack();
  TableColumn column1=new TableColumn(tableViewer.getTable(),SWT.LEFT);
  column1.setText("String_Node_Str");
  column1.setResizable(true);
  column1.pack();
  TableColumn column2=new TableColumn(tableViewer.getTable(),SWT.LEFT);
  column2.setText("String_Node_Str");
  column2.setResizable(true);
  column2.pack();
  TableColumn column3=new TableColumn(tableViewer.getTable(),SWT.LEFT);
  column3.setText("String_Node_Str");
  column3.setResizable(true);
  column3.pack();
  makeActions();
  hookDoubleClickAction();
  contributeToActionBars();
  getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(selectionListener);
  JFaceResources.getFontRegistry().put(MyToolTip.HEADER_FONT,JFaceResources.getFontRegistry().getBold(JFaceResources.getDefaultFont().getFontData()[0].getName()).getFontData());
  MyToolTip toolTip=new MyToolTip(tableViewer.getControl());
  toolTip.setShift(new Point(-5,-5));
  toolTip.setHideOnMouseDown(false);
  toolTip.activate();
}

Fixed version (ground truth):
/** 
 * This is a callback that will allow us to create the viewer and initialize it.
 */
public void createPartControl(Composite parent){
  tableViewer=new TableViewer(parent,SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL| SWT.BORDER| SWT.FULL_SELECTION);
  tableViewer.setContentProvider(new ViewContentProvider());
  tableViewer.setLabelProvider(new ViewLabelProvider());
  tableViewer.setSorter(new NameSorter());
  tableViewer.setInput(getViewSite());
  TableLayout layout=new TableLayout();
  layout.addColumnData(new ColumnWeightData(40,true));
  layout.addColumnData(new ColumnWeightData(60,true));
  layout.addColumnData(new ColumnWeightData(40,true));
  layout.addColumnData(new ColumnWeightData(40,true));
  tableViewer.getTable().setLayout(layout);
  tableViewer.getTable().setLinesVisible(true);
  tableViewer.getTable().setHeaderVisible(true);
  TableColumn column0=new TableColumn(tableViewer.getTable(),SWT.LEFT);
  column0.setText("String_Node_Str");
  column0.setResizable(true);
  column0.pack();
  TableColumn column1=new TableColumn(tableViewer.getTable(),SWT.LEFT);
  column1.setText("String_Node_Str");
  column1.setResizable(true);
  column1.pack();
  TableColumn column2=new TableColumn(tableViewer.getTable(),SWT.LEFT);
  column2.setText("String_Node_Str");
  column2.setResizable(true);
  column2.pack();
  TableColumn column3=new TableColumn(tableViewer.getTable(),SWT.LEFT);
  column3.setText("String_Node_Str");
  column3.setResizable(true);
  column3.pack();
  makeActions();
  hookDoubleClickAction();
  contributeToActionBars();
  getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(selectionListener);
  getSite().getWorkbenchWindow().getWorkbench().getOperationSupport().getOperationHistory().addOperationHistoryListener(new OperationHistoryListener());
  JFaceResources.getFontRegistry().put(MyToolTip.HEADER_FONT,JFaceResources.getFontRegistry().getBold(JFaceResources.getDefaultFont().getFontData()[0].getName()).getFontData());
  MyToolTip toolTip=new MyToolTip(tableViewer.getControl());
  toolTip.setShift(new Point(-5,-5));
  toolTip.setHideOnMouseDown(false);
  toolTip.activate();
}