Program: 94963
Project: 94963
Buggy source:
private void constructWidgets(){
  item=new CTabItem(tabFolder,SWT.NONE);
  form=toolkit.createForm(tabFolder);
  form.setImage(image);
  toolkit.decorateFormHeading(form);
  form.setText(getUserName(remoteID));
  form.getBody().setLayout(new GridLayout());
  SashForm sash=new SashForm(form.getBody(),SWT.VERTICAL);
  sash.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  Composite client=toolkit.createComposite(sash);
  client.setLayout(new FillLayout());
  SourceViewer result=new SourceViewer(client,null,null,true,SWT.BORDER | SWT.WRAP | SWT.V_SCROLL| SWT.MULTI| SWT.READ_ONLY);
  result.configure(new TextSourceViewerConfiguration(EditorsUI.getPreferenceStore()));
  result.setDocument(new Document());
  chatText=result.getTextWidget();
  client=toolkit.createComposite(sash);
  client.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  client.setLayout(new FillLayout());
  inputText=new Text(client,SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);
  sash.setWeights(WEIGHTS);
  Menu menu=new Menu(chatText);
  MenuItem mi=new MenuItem(menu,SWT.PUSH);
  mi.setText(Messages.MessagesView_Copy);
  mi.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(org.eclipse.ui.ISharedImages.IMG_TOOL_COPY));
  mi.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      String text=chatText.getSelectionText();
      if (!text.equals("String_Node_Str")) {
        chatText.copy();
      }
    }
  }
);
  mi=new MenuItem(menu,SWT.PUSH);
  mi.setText(Messages.MessagesView_SelectAll);
  mi.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      chatText.selectAll();
    }
  }
);
  chatText.setMenu(menu);
  IAction action=new Action(getUserName(remoteID) + '\t',IAction.AS_RADIO_BUTTON){
    public void run(){
      tabFolder.setSelection(item);
    }
  }
;
  switchItem=new ActionContributionItem(action);
  manager=form.getMenuManager();
  switchActions.add(switchItem);
  menuManagers.add(manager);
  for (int i=menuManagers.size() - 1; i > -1; i--) {
    IMenuManager manager=(IMenuManager)menuManagers.get(i);
    manager.removeAll();
    for (int j=0; j < switchActions.size(); j++) {
      IAction switchAction=((ActionContributionItem)switchActions.get(j)).getAction();
      switchAction.setChecked(false);
      manager.add(new ActionContributionItem(switchAction));
    }
    manager.update();
  }
  action.setChecked(true);
  action=new Action(){
    public void run(){
      item.dispose();
      removeTab(ChatTab.this);
      switchActions.remove(switchItem);
      menuManagers.remove(manager);
      for (int i=0; i < menuManagers.size(); i++) {
        IMenuManager manager=(IMenuManager)menuManagers.get(i);
        manager.remove(switchItem);
        manager.update(true);
      }
    }
  }
;
  action.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
  form.getToolBarManager().add(action);
  form.getToolBarManager().update(true);
  item.setControl(form);
  item.setText(getUserName(remoteID));
  toolkit.paintBordersFor(form.getBody());
}

Fixed version (ground truth):
private void constructWidgets(){
  item=new CTabItem(tabFolder,SWT.NONE);
  Composite parent=new Composite(tabFolder,SWT.NONE);
  parent.setLayout(new GridLayout());
  notificationLabel=new Label(parent,SWT.BEGINNING);
  notificationLabel.setLayoutData(new GridData(SWT.FILL,SWT.BEGINNING,true,false));
  SashForm sash=new SashForm(parent,SWT.VERTICAL);
  sash.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  Composite client=new Composite(sash,SWT.NONE);
  client.setLayout(new FillLayout());
  SourceViewer result=new SourceViewer(client,null,null,true,SWT.BORDER | SWT.WRAP | SWT.V_SCROLL| SWT.MULTI| SWT.READ_ONLY);
  result.configure(new TextSourceViewerConfiguration(EditorsUI.getPreferenceStore()));
  result.setDocument(new Document());
  chatText=result.getTextWidget();
  inputText=new Text(sash,SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);
  sash.setWeights(WEIGHTS);
  Menu menu=new Menu(chatText);
  MenuItem mi=new MenuItem(menu,SWT.PUSH);
  mi.setText(Messages.MessagesView_Copy);
  mi.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(org.eclipse.ui.ISharedImages.IMG_TOOL_COPY));
  mi.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      String text=chatText.getSelectionText();
      if (!text.equals("String_Node_Str")) {
        chatText.copy();
      }
    }
  }
);
  mi=new MenuItem(menu,SWT.PUSH);
  mi.setText(Messages.MessagesView_SelectAll);
  mi.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      chatText.selectAll();
    }
  }
);
  chatText.setMenu(menu);
  item.setControl(parent);
  item.setText(getUserName(remoteID));
}