Program: 136537
Project: 136537
Buggy source:
private Section createTableSectionPart(Composite parentComp,String title,SimpleStatIndicator ssIndicator){
  Section columnSetElementSection=this.createSection(form,parentComp,title,null);
  Composite sectionTableComp=toolkit.createComposite(columnSetElementSection);
  if (ssIndicator.isStoreData()) {
    columnSetElementSection.setExpanded(true);
    columnSetElementSection.setEnabled(true);
    sectionTableComp.setLayoutData(new GridData(GridData.FILL_BOTH));
    sectionTableComp.setLayout(new GridLayout());
    Button filterDataBt=new Button(sectionTableComp,SWT.NONE);
    filterDataBt.setText(DefaultMessagesImpl.getString("String_Node_Str"));
    filterDataBt.setLayoutData(new GridData(SWT.CENTER,SWT.CENTER,false,false));
    filterDataBt.setEnabled(containAllMatchIndicator());
    filterDataBt.addMouseListener(new MouseListener(){
      public void mouseDoubleClick(      MouseEvent e){
      }
      public void mouseDown(      MouseEvent e){
        List<Indicator> indicatorsList=masterPage.getCurrentModelElement().getResults().getIndicators();
        SelectPatternsWizard wizard=new SelectPatternsWizard(indicatorsList);
        wizard.setFilterType(filterType);
        wizard.setOldTableInputList(ColumnSetAnalysisResultPage.this.tableFilterResult);
        WizardDialog dialog=new WizardDialog(null,wizard);
        dialog.setPageSize(300,400);
        wizard.setContainer(dialog);
        wizard.setWindowTitle(DefaultMessagesImpl.getString("String_Node_Str"));
        if (WizardDialog.OK == dialog.open()) {
          ColumnSetAnalysisResultPage.this.tableFilterResult=wizard.getPatternSelectPage().getTableInputList();
          filterType=wizard.getPatternSelectPage().getFilterType();
          columnsElementViewer.refresh();
        }
      }
      public void mouseUp(      MouseEvent e){
      }
    }
);
    columnsElementViewer=new TableViewer(sectionTableComp,SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);
    Table table=columnsElementViewer.getTable();
    table.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
    List<String> tableColumnNames=ssIndicator.getColumnHeaders();
    for (    String tableColumnName : tableColumnNames) {
      final TableColumn columnHeader=new TableColumn(table,SWT.NONE);
      columnHeader.setText(tableColumnName);
    }
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    TableSectionViewerProvider provider=new TableSectionViewerProvider();
    List<Object[]> tableRows=ssIndicator.getListRows();
    columnsElementViewer.setContentProvider(provider);
    columnsElementViewer.setLabelProvider(provider);
    columnsElementViewer.setInput(tableRows);
    columnsElementViewer.addFilter(new PatternDataFilter());
    for (int i=0; i < tableColumnNames.size(); i++) {
      table.getColumn(i).pack();
    }
    columnSetElementSection.setClient(sectionTableComp);
    columnSetElementSection.setExpanded(false);
    setupTableGridDataLimitedSize(table,tableRows.size());
    addColumnSorters(columnsElementViewer,table.getColumns(),this.buildSorter(tableRows));
  }
 else {
    columnSetElementSection.setExpanded(false);
    columnSetElementSection.setEnabled(false);
  }
  return columnSetElementSection;
}

Fixed version (ground truth):
private Section createTableSectionPart(Composite parentComp,String title,SimpleStatIndicator ssIndicator){
  Section columnSetElementSection=this.createSection(form,parentComp,title,null);
  Composite sectionTableComp=toolkit.createComposite(columnSetElementSection);
  if (ssIndicator.isStoreData()) {
    columnSetElementSection.setExpanded(true);
    columnSetElementSection.setEnabled(true);
    sectionTableComp.setLayoutData(new GridData(GridData.FILL_BOTH));
    sectionTableComp.setLayout(new GridLayout());
    Button filterDataBt=new Button(sectionTableComp,SWT.NONE);
    filterDataBt.setText(DefaultMessagesImpl.getString("String_Node_Str"));
    filterDataBt.setLayoutData(new GridData(SWT.CENTER,SWT.CENTER,false,false));
    filterDataBt.setEnabled(containAllMatchIndicator());
    filterDataBt.addMouseListener(new MouseListener(){
      public void mouseDoubleClick(      MouseEvent e){
      }
      public void mouseDown(      MouseEvent e){
        List<Indicator> indicatorsList=masterPage.getCurrentModelElement().getResults().getIndicators();
        SelectPatternsWizard wizard=new SelectPatternsWizard(indicatorsList);
        wizard.setFilterType(filterType);
        wizard.setOldTableInputList(ColumnSetAnalysisResultPage.this.tableFilterResult.getTableFilterResult());
        WizardDialog dialog=new WizardDialog(null,wizard);
        dialog.setPageSize(300,400);
        wizard.setContainer(dialog);
        wizard.setWindowTitle(DefaultMessagesImpl.getString("String_Node_Str"));
        if (WizardDialog.OK == dialog.open()) {
          ColumnSetAnalysisResultPage.this.tableFilterResult=new TableFilterResult(wizard.getPatternSelectPage().getTableInputList());
          filterType=wizard.getPatternSelectPage().getFilterType();
          columnsElementViewer.refresh();
        }
      }
      public void mouseUp(      MouseEvent e){
      }
    }
);
    columnsElementViewer=new TableViewer(sectionTableComp,SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);
    Table table=columnsElementViewer.getTable();
    table.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
    List<String> tableColumnNames=ssIndicator.getColumnHeaders();
    for (    String tableColumnName : tableColumnNames) {
      final TableColumn columnHeader=new TableColumn(table,SWT.NONE);
      columnHeader.setText(tableColumnName);
    }
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    TableSectionViewerProvider provider=new TableSectionViewerProvider();
    List<Object[]> tableRows=ssIndicator.getListRows();
    columnsElementViewer.setContentProvider(provider);
    columnsElementViewer.setLabelProvider(provider);
    columnsElementViewer.setInput(tableRows);
    for (int i=0; i < tableColumnNames.size(); i++) {
      table.getColumn(i).pack();
    }
    columnSetElementSection.setClient(sectionTableComp);
    columnSetElementSection.setExpanded(false);
    setupTableGridDataLimitedSize(table,tableRows.size());
    addColumnSorters(columnsElementViewer,table.getColumns(),this.buildSorter(tableRows));
  }
 else {
    columnSetElementSection.setExpanded(false);
    columnSetElementSection.setEnabled(false);
  }
  return columnSetElementSection;
}