Program: 148609
Project: 148609
Buggy source:
@Override protected Control createDialogArea(Composite parent){
  parent.getShell().setText(this.title);
  Composite composite=(Composite)super.createDialogArea(parent);
  composite.setLayout(new GridLayout(2,false));
  columns=new ComplexTableViewerColumn[]{new ComplexTableViewerColumn("String_Node_Str",false,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.XPATH_STYLE,new String[]{},0),new ComplexTableViewerColumn("String_Node_Str",false,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.COMBO_STYLE,IConstants.VIEW_CONDITION_OPERATORS,0),new ComplexTableViewerColumn("String_Node_Str",false,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.XPATH_STYLE,new String[]{},0),new ComplexTableViewerColumn("String_Node_Str",true,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.COMBO_STYLE,IConstants.PREDICATES,0)};
  columns[0].setColumnWidth(200);
  columns[1].setColumnWidth(140);
  columns[2].setColumnWidth(200);
  columns[3].setColumnWidth(140);
  viewer=new TisTableViewer(Arrays.asList(columns),new WidgetFactory(),composite);
  viewer.setXpath(true);
  viewer.setMainPage(page);
  viewer.create();
  viewer.getViewer().setInput(parseRules());
  viewer.setHeight(140);
  viewer.setWidth(680);
  viewer.getMainComposite().setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,2,3));
  parent.getShell().addDisposeListener(new DisposeListener(){
    public void widgetDisposed(    DisposeEvent e){
      XpathSelectDialog.setContext(null);
    }
  }
);
  return composite;
}

Fixed version (ground truth):
@Override protected Control createDialogArea(Composite parent){
  parent.getShell().setText(this.title);
  Composite composite=(Composite)super.createDialogArea(parent);
  composite.setLayout(new GridLayout(2,false));
  columns=new ComplexTableViewerColumn[]{new ComplexTableViewerColumn("String_Node_Str",false,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.XPATH_STYLE,new String[]{},0),new ComplexTableViewerColumn("String_Node_Str",false,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.COMBO_STYLE,IConstants.COMPOSITE_VIEW_CONDITION_OPERATORS,0),new ComplexTableViewerColumn("String_Node_Str",false,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.XPATH_STYLE,new String[]{},0),new ComplexTableViewerColumn("String_Node_Str",true,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.COMBO_STYLE,IConstants.PREDICATES,0)};
  columns[0].setColumnWidth(200);
  columns[1].setColumnWidth(140);
  columns[2].setColumnWidth(200);
  columns[3].setColumnWidth(140);
  viewer=new TisTableViewer(Arrays.asList(columns),new WidgetFactory(),composite);
  viewer.setXpath(true);
  viewer.setMainPage(page);
  viewer.create();
  viewer.getViewer().setInput(parseRules());
  viewer.setHeight(140);
  viewer.setWidth(680);
  viewer.getMainComposite().setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,2,3));
  parent.getShell().addDisposeListener(new DisposeListener(){
    public void widgetDisposed(    DisposeEvent e){
      XpathSelectDialog.setContext(null);
    }
  }
);
  return composite;
}