Program: 52755
Project: 52755
Buggy source:
private void createEarningsByAccountsItem(CTabFolder folder,String title){
  Composite container=new Composite(folder,SWT.NONE);
  TableColumnLayout layout=new TableColumnLayout();
  container.setLayout(layout);
  earningsByAccount=new TableViewer(container,SWT.FULL_SELECTION);
  ShowHideColumnHelper support=new ShowHideColumnHelper(PerformanceView.class.getSimpleName() + "String_Node_Str",getPreferenceStore(),earningsByAccount,layout);
  Column column=new Column(Messages.ColumnSource,SWT.LEFT,400);
  column.setLabelProvider(new ColumnLabelProvider(){
    @Override public String getText(    Object element){
      GroupEarningsByAccount.Item item=(GroupEarningsByAccount.Item)element;
      return item.getAccount().getName();
    }
    @Override public Image getImage(    Object element){
      return PortfolioPlugin.image(PortfolioPlugin.IMG_ACCOUNT);
    }
  }
);
  column.setSorter(ColumnViewerSorter.create(GroupEarningsByAccount.Item.class,"String_Node_Str"));
  support.addColumn(column);
  column=new Column(Messages.ColumnAmount,SWT.RIGHT,80);
  column.setLabelProvider(new ColumnLabelProvider(){
    @Override public String getText(    Object element){
      GroupEarningsByAccount.Item item=(GroupEarningsByAccount.Item)element;
      return Values.Amount.format(item.getSum());
    }
  }
);
  column.setSorter(ColumnViewerSorter.create(GroupEarningsByAccount.Item.class,"String_Node_Str"));
  support.addColumn(column);
  support.createColumns();
  earningsByAccount.getTable().setHeaderVisible(true);
  earningsByAccount.getTable().setLinesVisible(true);
  earningsByAccount.setContentProvider(new SimpleListContentProvider());
  CTabItem item=new CTabItem(folder,SWT.NONE);
  item.setText(title);
  item.setControl(container);
}

Fixed version (ground truth):
private void createEarningsByAccountsItem(CTabFolder folder,String title){
  Composite container=new Composite(folder,SWT.NONE);
  TableColumnLayout layout=new TableColumnLayout();
  container.setLayout(layout);
  earningsByAccount=new TableViewer(container,SWT.FULL_SELECTION);
  ShowHideColumnHelper support=new ShowHideColumnHelper(PerformanceView.class.getSimpleName() + "String_Node_Str",getPreferenceStore(),earningsByAccount,layout);
  Column column=new Column(Messages.ColumnSource,SWT.LEFT,400);
  column.setLabelProvider(new ColumnLabelProvider(){
    @Override public String getText(    Object element){
      GroupEarningsByAccount.Item item=(GroupEarningsByAccount.Item)element;
      return item.getAccount().getName();
    }
    @Override public Image getImage(    Object element){
      return PortfolioPlugin.image(PortfolioPlugin.IMG_ACCOUNT);
    }
  }
);
  column.setSorter(ColumnViewerSorter.create(GroupEarningsByAccount.Item.class,"String_Node_Str"));
  support.addColumn(column);
  column=new Column(Messages.ColumnAmount,SWT.RIGHT,80);
  column.setLabelProvider(new ColumnLabelProvider(){
    @Override public String getText(    Object element){
      GroupEarningsByAccount.Item item=(GroupEarningsByAccount.Item)element;
      return Values.Amount.format(item.getSum());
    }
  }
);
  column.setSorter(ColumnViewerSorter.create(GroupEarningsByAccount.Item.class,"String_Node_Str"));
  support.addColumn(column);
  support.createColumns();
  earningsByAccount.getTable().setHeaderVisible(true);
  earningsByAccount.getTable().setLinesVisible(true);
  earningsByAccount.setContentProvider(new SimpleListContentProvider());
  ViewerHelper.pack(earningsByAccount);
  CTabItem item=new CTabItem(folder,SWT.NONE);
  item.setText(title);
  item.setControl(container);
}