Program: 148166
Project: 148166
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));
  Label label=new Label(composite,SWT.NONE);
  label.setText("String_Node_Str");
  label.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,false,true,1,1));
  text=new Text(composite,SWT.BORDER);
  text.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,false,true,1,1));
  columns=new ComplexTableViewerColumn[]{new ComplexTableViewerColumn("String_Node_Str",false,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.COMBO_STYLE,IConstants.SCHEMATRON_TYPES,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",false,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.VALIDATIONRULE_STYLE,new String[]{},0),new ComplexTableViewerColumn("String_Node_Str",false,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.MULTIMESSAGE_STYLE,new String[]{},0)};
  columns[0].setColumnWidth(70);
  columns[1].setColumnWidth(130);
  columns[2].setColumnWidth(300);
  columns[3].setColumnWidth(300);
  viewer=new TisTableViewer(Arrays.asList(columns),WidgetFactory.getWidgetFactory(),composite);
  viewer.setXpath(true);
  viewer.setConceptName(conceptName);
  viewer.setContext(true);
  viewer.create();
  viewer.getViewer().setInput(parseRules());
  viewer.setHeight(110);
  viewer.setWidth(800);
  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));
  Label label=new Label(composite,SWT.NONE);
  label.setText("String_Node_Str");
  label.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,false,true,1,1));
  text=new Text(composite,SWT.BORDER);
  text.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,false,true,1,1));
  columns=new ComplexTableViewerColumn[]{new ComplexTableViewerColumn("String_Node_Str",false,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.COMBO_STYLE,IConstants.SCHEMATRON_TYPES,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",false,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.VALIDATIONRULE_STYLE,new String[]{},0),new ComplexTableViewerColumn("String_Node_Str",false,"String_Node_Str","String_Node_Str","String_Node_Str",ComplexTableViewerColumn.MULTIMESSAGE_STYLE,new String[]{},0)};
  columns[0].setColumnWidth(70);
  columns[1].setColumnWidth(130);
  columns[2].setColumnWidth(300);
  columns[3].setColumnWidth(300);
  viewer=new TisTableViewer(Arrays.asList(columns),WidgetFactory.getWidgetFactory(),composite);
  TreeParent treeParent=(TreeParent)page.getAdapter(TreeParent.class);
  viewer.setTreeParent(treeParent);
  viewer.setXpath(true);
  viewer.setConceptName(conceptName);
  viewer.setContext(true);
  viewer.create();
  viewer.getViewer().setInput(parseRules());
  viewer.setHeight(110);
  viewer.setWidth(800);
  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;
}