Program: 93101
Project: 93101
Buggy source:
/** 
 * Create contents of the dialog.
 * @param parent
 */
@Override protected Control createDialogArea(Composite parent){
  Composite container=(Composite)super.createDialogArea(parent);
  container.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  container.setLayout(new GridLayout(1,false));
  Composite generatorSelectionContainer=new Composite(container,SWT.NONE);
  generatorSelectionContainer.setLayout(new GridLayout(2,false));
  Label selectorLabel=new Label(generatorSelectionContainer,SWT.NONE);
  selectorLabel.setText("String_Node_Str");
  selectorLabel.setLayoutData(new GridData(SWT.LEFT,SWT.CENTER,false,false));
  ComboViewer comboViewer=new ComboViewer(generatorSelectionContainer);
  comboViewer.setContentProvider(new ArrayContentProvider());
  comboViewer.setLabelProvider(new LabelProvider(){
    @Override public String getText(    Object o){
      return ((Generator)o).getLabel();
    }
  }
);
  comboViewer.setInput(this.availableGenerators);
  comboViewer.setSelection(new StructuredSelection(this.recorder.getCurrentGenerator()));
  comboViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    public void selectionChanged(    SelectionChangedEvent event){
      Generator newGenerator=(Generator)((IStructuredSelection)event.getSelection()).getFirstElement();
      recorder.setGenerator(newGenerator);
    }
  }
);
  Label label=new Label(container,SWT.NONE);
  label.setText("String_Node_Str");
  this.generatedCode=new Text(container,SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL| SWT.BORDER);
  this.generatedCode.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  Composite actionsComposite=new Composite(container,SWT.NONE);
  actionsComposite.setLayout(new RowLayout(SWT.HORIZONTAL));
  final Button recordPauseButton=new Button(actionsComposite,SWT.PUSH);
  recordPauseButton.setText(this.recorder.isRecording() ? "String_Node_Str" : "String_Node_Str");
  final Button copyButton=new Button(actionsComposite,SWT.PUSH);
  copyButton.setToolTipText("String_Node_Str");
  copyButton.setText("String_Node_Str");
  recordPauseButton.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      recorder.setRecording(!recorder.isRecording());
      recordPauseButton.setText(recorder.isRecording() ? "String_Node_Str" : "String_Node_Str");
    }
  }
);
  this.recorder.addListener(new CodeGenerationListener(){
    public void handleCodeGenerated(    GenerationRule code){
      for (      String action : code.getActions())       generatedCode.setText(generatedCode.getText() + action + "String_Node_Str");
    }
  }
);
  copyButton.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      final Clipboard cb=new Clipboard(Display.getCurrent());
      TextTransfer textTransfer=TextTransfer.getInstance();
      cb.setContents(new Object[]{generatedCode.getText()},new Transfer[]{textTransfer});
      cb.dispose();
    }
  }
);
  return container;
}

Fixed version (ground truth):
/** 
 * Create contents of the dialog.
 * @param parent
 */
@Override protected Control createDialogArea(Composite parent){
  Composite container=(Composite)super.createDialogArea(parent);
  container.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  container.setLayout(new GridLayout(1,false));
  Composite generatorSelectionContainer=new Composite(container,SWT.NONE);
  generatorSelectionContainer.setLayout(new GridLayout(2,false));
  Label selectorLabel=new Label(generatorSelectionContainer,SWT.NONE);
  selectorLabel.setText("String_Node_Str");
  selectorLabel.setLayoutData(new GridData(SWT.LEFT,SWT.CENTER,false,false));
  ComboViewer comboViewer=new ComboViewer(generatorSelectionContainer);
  comboViewer.setContentProvider(new ArrayContentProvider());
  comboViewer.setLabelProvider(new LabelProvider(){
    @Override public String getText(    Object o){
      return ((Generator)o).getLabel();
    }
  }
);
  comboViewer.setInput(this.availableGenerators);
  comboViewer.setSelection(new StructuredSelection(this.recorder.getCurrentGenerator()));
  comboViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    public void selectionChanged(    SelectionChangedEvent event){
      Generator newGenerator=(Generator)((IStructuredSelection)event.getSelection()).getFirstElement();
      recorder.setGenerator(newGenerator);
    }
  }
);
  Label label=new Label(container,SWT.NONE);
  label.setText("String_Node_Str");
  this.generatedCode=new Text(container,SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL| SWT.BORDER);
  this.generatedCode.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  Composite actionsComposite=new Composite(container,SWT.NONE);
  actionsComposite.setLayout(new RowLayout(SWT.HORIZONTAL));
  final Button recordPauseButton=new Button(actionsComposite,SWT.PUSH);
  recordPauseButton.setText(this.recorder.isRecording() ? "String_Node_Str" : "String_Node_Str");
  final Button copyButton=new Button(actionsComposite,SWT.PUSH);
  copyButton.setToolTipText("String_Node_Str");
  copyButton.setText("String_Node_Str");
  recordPauseButton.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      recorder.setRecording(!recorder.isRecording());
      recordPauseButton.setText(recorder.isRecording() ? "String_Node_Str" : "String_Node_Str");
    }
  }
);
  this.recorder.addListener(new CodeGenerationListener(){
    public void handleCodeGenerated(    GenerationRule code){
      String lineSeparator=System.getProperty("String_Node_Str");
      StringBuilder builder=new StringBuilder(generatedCode.getText());
      for (      String action : code.getActions()) {
        builder.append(action);
        builder.append("String_Node_Str");
        builder.append(lineSeparator);
      }
      generatedCode.setText(builder.toString());
    }
  }
);
  copyButton.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      final Clipboard cb=new Clipboard(Display.getCurrent());
      TextTransfer textTransfer=TextTransfer.getInstance();
      cb.setContents(new Object[]{generatedCode.getText()},new Transfer[]{textTransfer});
      cb.dispose();
    }
  }
);
  return container;
}