Program: 136030
Project: 136030
Buggy source:
/** 
 * Creates the layout and fill it with data
 */
public void createPartControl(Composite parent){
  toolkit=new FormToolkit(parent.getDisplay());
  form=toolkit.createForm(parent);
  form.setText("String_Node_Str");
  toolkit.decorateFormHeading(form);
  GridLayout layout;
  GridData gd;
  Composite body=form.getBody();
  layout=new GridLayout(1,false);
  body.setLayout(layout);
  SashForm outerSashForm=new SashForm(body,SWT.VERTICAL);
  toolkit.adapt(outerSashForm);
  gd=new GridData(SWT.FILL,SWT.FILL,true,true);
  outerSashForm.setLayoutData(gd);
  errorViewer=FormHelper.createFormsOutputViewer(toolkit,outerSashForm,SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI| SWT.BORDER);
  gd=new GridData(SWT.FILL,SWT.FILL,true,false);
  gd.heightHint=100;
  errorViewer.getControl().setLayoutData(gd);
  Composite belowErrorViewerComposite=toolkit.createComposite(outerSashForm);
  layout=new GridLayout(1,false);
  layout.marginWidth=0;
  belowErrorViewerComposite.setLayout(layout);
  traceExplorerComposite=new TraceExplorerComposite(belowErrorViewerComposite,"String_Node_Str","String_Node_Str",toolkit,this);
  Section errorTraceSection=toolkit.createSection(belowErrorViewerComposite,Section.TITLE_BAR);
  errorTraceSection.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  errorTraceSection.setLayout(new GridLayout(1,true));
  errorTraceSection.setText("String_Node_Str");
  Composite errorTraceSectionClientArea=toolkit.createComposite(errorTraceSection);
  errorTraceSectionClientArea.setLayout(new GridLayout(1,true));
  errorTraceSection.setClient(errorTraceSectionClientArea);
  SashForm sashForm=new SashForm(errorTraceSectionClientArea,SWT.VERTICAL);
  toolkit.adapt(sashForm);
  gd=new GridData(SWT.FILL,SWT.FILL,true,true);
  sashForm.setLayoutData(gd);
  Tree tree=toolkit.createTree(sashForm,SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION| SWT.SINGLE| SWT.VIRTUAL);
  tree.setHeaderVisible(true);
  tree.setLinesVisible(true);
  gd=new GridData(SWT.LEFT,SWT.TOP,true,false);
  gd.minimumHeight=300;
  tree.setLayoutData(gd);
  tree.setToolTipText(TOOLTIP);
  TraceDisplayResizer resizer=new TraceDisplayResizer();
  resizer.comp=sashForm;
  resizer.tree=tree;
  for (int i=0; i < StateLabelProvider.COLUMN_TEXTS.length; i++) {
    TreeColumn column=new TreeColumn(tree,SWT.LEFT);
    column.setText(StateLabelProvider.COLUMN_TEXTS[i]);
    column.setWidth(StateLabelProvider.COLUMN_WIDTH[i]);
    resizer.column[i]=column;
    column.setToolTipText(TOOLTIP);
  }
  tree.addControlListener(resizer);
  int eventType=SWT.Resize;
  resizer.column[0].addListener(eventType,resizer);
  variableViewer=new TreeViewer(tree);
  variableViewer.setContentProvider(new StateContentProvider());
  variableViewer.setFilters(new ViewerFilter[]{new StateFilter()});
  variableViewer.setLabelProvider(new StateLabelProvider());
  variableViewer.addDoubleClickListener(new ActionClickListener());
  variableViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    public void selectionChanged(    SelectionChangedEvent event){
      if (!((IStructuredSelection)event.getSelection()).isEmpty()) {
        Object selection=((IStructuredSelection)event.getSelection()).getFirstElement();
        valueViewer.setDocument(new Document(selection.toString()));
      }
 else {
        valueViewer.setDocument(NO_VALUE_DOCUMENT());
      }
    }
  }
);
  valueViewer=FormHelper.createFormsSourceViewer(toolkit,sashForm,SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI| SWT.BORDER);
  valueViewer.setEditable(false);
  gd=new GridData(SWT.LEFT,SWT.TOP,true,false);
  valueViewer.getControl().setLayoutData(gd);
  int[] weights={1,4};
  outerSashForm.setWeights(weights);
  form.getToolBarManager().add(new HelpAction());
  form.getToolBarManager().update(true);
  clear();
  TLCUIHelper.setHelp(parent,IHelpConstants.TLC_ERROR_VIEW);
}

Fixed version (ground truth):
/** 
 * Creates the layout and fill it with data
 */
public void createPartControl(Composite parent){
  toolkit=new FormToolkit(parent.getDisplay());
  form=toolkit.createForm(parent);
  form.setText("String_Node_Str");
  toolkit.decorateFormHeading(form);
  GridLayout layout;
  GridData gd;
  Composite body=form.getBody();
  layout=new GridLayout(1,false);
  body.setLayout(layout);
  SashForm outerSashForm=new SashForm(body,SWT.VERTICAL);
  toolkit.adapt(outerSashForm);
  gd=new GridData(SWT.FILL,SWT.FILL,true,true);
  outerSashForm.setLayoutData(gd);
  errorViewer=FormHelper.createFormsOutputViewer(toolkit,outerSashForm,SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI| SWT.BORDER);
  gd=new GridData(SWT.FILL,SWT.FILL,true,false);
  gd.heightHint=100;
  errorViewer.getControl().setLayoutData(gd);
  Composite belowErrorViewerComposite=toolkit.createComposite(outerSashForm);
  layout=new GridLayout(1,false);
  layout.marginWidth=0;
  belowErrorViewerComposite.setLayout(layout);
  traceExplorerComposite=new TraceExplorerComposite(belowErrorViewerComposite,"String_Node_Str","String_Node_Str",toolkit,this);
  Section errorTraceSection=toolkit.createSection(belowErrorViewerComposite,Section.TITLE_BAR);
  errorTraceSection.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  errorTraceSection.setLayout(new GridLayout(1,true));
  errorTraceSection.setText("String_Node_Str");
  Composite errorTraceSectionClientArea=toolkit.createComposite(errorTraceSection);
  errorTraceSectionClientArea.setLayout(new GridLayout(1,true));
  errorTraceSection.setClient(errorTraceSectionClientArea);
  SashForm sashForm=new SashForm(errorTraceSectionClientArea,SWT.VERTICAL);
  toolkit.adapt(sashForm);
  gd=new GridData(SWT.FILL,SWT.FILL,true,true);
  sashForm.setLayoutData(gd);
  Tree tree=toolkit.createTree(sashForm,SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION| SWT.SINGLE| SWT.VIRTUAL);
  tree.setHeaderVisible(true);
  tree.setLinesVisible(true);
  gd=new GridData(SWT.LEFT,SWT.TOP,true,false);
  gd.minimumHeight=300;
  tree.setLayoutData(gd);
  tree.setToolTipText(TOOLTIP);
  TraceDisplayResizer resizer=new TraceDisplayResizer();
  resizer.comp=sashForm;
  resizer.tree=tree;
  for (int i=0; i < StateLabelProvider.COLUMN_TEXTS.length; i++) {
    TreeColumn column=new TreeColumn(tree,SWT.LEFT);
    column.setText(StateLabelProvider.COLUMN_TEXTS[i]);
    column.setWidth(StateLabelProvider.COLUMN_WIDTH[i]);
    resizer.column[i]=column;
    column.setToolTipText(TOOLTIP);
  }
  tree.addControlListener(resizer);
  int eventType=SWT.Resize;
  resizer.column[0].addListener(eventType,resizer);
  variableViewer=new TreeViewer(tree);
  variableViewer.setContentProvider(new StateContentProvider());
  variableViewer.setFilters(new ViewerFilter[]{new StateFilter()});
  variableViewer.setLabelProvider(new StateLabelProvider());
  variableViewer.addDoubleClickListener(new ActionClickListener());
  variableViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    public void selectionChanged(    SelectionChangedEvent event){
      if (!((IStructuredSelection)event.getSelection()).isEmpty()) {
        Object selection=((IStructuredSelection)event.getSelection()).getFirstElement();
        if (selection instanceof TLCState) {
          TLCState state=(TLCState)selection;
          valueViewer.setDocument(new Document(state.getDescriptionWithTraceExpressions()));
        }
 else {
          valueViewer.setDocument(new Document(selection.toString()));
        }
      }
 else {
        valueViewer.setDocument(NO_VALUE_DOCUMENT());
      }
    }
  }
);
  valueViewer=FormHelper.createFormsSourceViewer(toolkit,sashForm,SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI| SWT.BORDER);
  valueViewer.setEditable(false);
  gd=new GridData(SWT.LEFT,SWT.TOP,true,false);
  valueViewer.getControl().setLayoutData(gd);
  int[] weights={1,4};
  outerSashForm.setWeights(weights);
  form.getToolBarManager().add(new HelpAction());
  form.getToolBarManager().update(true);
  clear();
  TLCUIHelper.setHelp(parent,IHelpConstants.TLC_ERROR_VIEW);
}