Program: 57595
Project: 57595
Buggy source:
private void createDelimiterGroup(){
  Group delimiterGroup=new Group(composite,SWT.SHADOW_ETCHED_IN);
  delimiterGroup.setText("String_Node_Str");
  delimiterGroup.setLayout(new RowLayout());
  final Button[] buttonDelimiter=new Button[6];
  buttonDelimiter[0]=new Button(delimiterGroup,SWT.CHECK);
  buttonDelimiter[0].setSelection(true);
  buttonDelimiter[0].setText("String_Node_Str");
  buttonDelimiter[0].setBounds(10,5,75,30);
  buttonDelimiter[1]=new Button(delimiterGroup,SWT.CHECK);
  buttonDelimiter[1].setText("String_Node_Str");
  buttonDelimiter[1].setBounds(10,30,75,30);
  buttonDelimiter[2]=new Button(delimiterGroup,SWT.CHECK);
  buttonDelimiter[2].setText("String_Node_Str");
  buttonDelimiter[2].setBounds(10,55,75,30);
  buttonDelimiter[3]=new Button(delimiterGroup,SWT.CHECK);
  buttonDelimiter[3].setText("String_Node_Str");
  buttonDelimiter[3].setBounds(10,55,75,30);
  buttonDelimiter[4]=new Button(delimiterGroup,SWT.CHECK);
  buttonDelimiter[4].setText("String_Node_Str");
  buttonDelimiter[4].setBounds(10,55,75,30);
  buttonDelimiter[5]=new Button(delimiterGroup,SWT.CHECK);
  buttonDelimiter[5].setText("String_Node_Str");
  buttonDelimiter[5].setBounds(10,55,75,30);
  final Text txtCustomizedDelimiter=new Text(delimiterGroup,SWT.BORDER);
  txtCustomizedDelimiter.setBounds(0,0,75,30);
  txtCustomizedDelimiter.setTextLimit(1);
  txtCustomizedDelimiter.setEnabled(false);
  txtCustomizedDelimiter.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent e){
      createDataPreviewTable(txtCustomizedDelimiter.getText());
    }
  }
);
  buttonDelimiter[0].addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      buttonDelimiter[1].setSelection(false);
      buttonDelimiter[2].setSelection(false);
      buttonDelimiter[3].setSelection(false);
      buttonDelimiter[4].setSelection(false);
      buttonDelimiter[5].setSelection(false);
      if (dataSetDescription.getDataSourcePath().isEmpty())       return;
      createDataPreviewTable("String_Node_Str");
    }
  }
);
  buttonDelimiter[1].addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      buttonDelimiter[0].setSelection(false);
      buttonDelimiter[2].setSelection(false);
      buttonDelimiter[3].setSelection(false);
      buttonDelimiter[4].setSelection(false);
      buttonDelimiter[5].setSelection(false);
      txtCustomizedDelimiter.setEnabled(false);
      if (dataSetDescription.getDataSourcePath().isEmpty())       return;
      createDataPreviewTable("String_Node_Str");
    }
  }
);
  buttonDelimiter[2].addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      buttonDelimiter[0].setSelection(false);
      buttonDelimiter[1].setSelection(false);
      buttonDelimiter[3].setSelection(false);
      buttonDelimiter[4].setSelection(false);
      buttonDelimiter[5].setSelection(false);
      txtCustomizedDelimiter.setEnabled(false);
      if (dataSetDescription.getDataSourcePath().isEmpty())       return;
      createDataPreviewTable("String_Node_Str");
    }
  }
);
  buttonDelimiter[3].addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      buttonDelimiter[0].setSelection(false);
      buttonDelimiter[1].setSelection(false);
      buttonDelimiter[2].setSelection(false);
      buttonDelimiter[4].setSelection(false);
      buttonDelimiter[5].setSelection(false);
      txtCustomizedDelimiter.setEnabled(false);
      if (dataSetDescription.getDataSourcePath().isEmpty())       return;
      createDataPreviewTable("String_Node_Str");
    }
  }
);
  buttonDelimiter[4].addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      buttonDelimiter[0].setSelection(false);
      buttonDelimiter[1].setSelection(false);
      buttonDelimiter[2].setSelection(false);
      buttonDelimiter[3].setSelection(false);
      buttonDelimiter[5].setSelection(false);
      txtCustomizedDelimiter.setEnabled(false);
      if (dataSetDescription.getDataSourcePath().isEmpty())       return;
      createDataPreviewTable("String_Node_Str");
    }
  }
);
  buttonDelimiter[5].addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      buttonDelimiter[0].setSelection(false);
      buttonDelimiter[1].setSelection(false);
      buttonDelimiter[2].setSelection(false);
      buttonDelimiter[3].setSelection(false);
      buttonDelimiter[4].setSelection(false);
      txtCustomizedDelimiter.setEnabled(true);
      if (dataSetDescription.getDataSourcePath().isEmpty())       return;
      createDataPreviewTable("String_Node_Str");
    }
  }
);
}

Fixed version (ground truth):
private void createDelimiterGroup(Composite parent){
  Group delimiterGroup=new Group(parent,SWT.SHADOW_ETCHED_IN);
  delimiterGroup.setText("String_Node_Str");
  delimiterGroup.setLayout(new RowLayout());
  final Button[] delimiterButtons=new Button[6];
  delimiterButtons[0]=new Button(delimiterGroup,SWT.RADIO);
  delimiterButtons[0].setSelection(true);
  delimiterButtons[0].setText("String_Node_Str");
  delimiterButtons[0].setData("String_Node_Str");
  delimiterButtons[0].setBounds(10,5,75,30);
  delimiterButtons[1]=new Button(delimiterGroup,SWT.RADIO);
  delimiterButtons[1].setText("String_Node_Str");
  delimiterButtons[1].setData("String_Node_Str");
  delimiterButtons[1].setBounds(10,30,75,30);
  delimiterButtons[2]=new Button(delimiterGroup,SWT.RADIO);
  delimiterButtons[2].setText("String_Node_Str");
  delimiterButtons[2].setData("String_Node_Str");
  delimiterButtons[2].setBounds(10,55,75,30);
  delimiterButtons[3]=new Button(delimiterGroup,SWT.RADIO);
  delimiterButtons[3].setText("String_Node_Str");
  delimiterButtons[3].setData("String_Node_Str");
  delimiterButtons[3].setBounds(10,55,75,30);
  delimiterButtons[4]=new Button(delimiterGroup,SWT.RADIO);
  delimiterButtons[4].setText("String_Node_Str");
  delimiterButtons[4].setData("String_Node_Str");
  delimiterButtons[4].setBounds(10,55,75,30);
  delimiterButtons[5]=new Button(delimiterGroup,SWT.RADIO);
  delimiterButtons[5].setText("String_Node_Str");
  delimiterButtons[5].setBounds(10,55,75,30);
  final Text customizedDelimiterTextField=new Text(delimiterGroup,SWT.BORDER);
  customizedDelimiterTextField.setBounds(0,0,75,30);
  customizedDelimiterTextField.setTextLimit(1);
  customizedDelimiterTextField.setEnabled(false);
  customizedDelimiterTextField.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent e){
      createDataPreviewTable(customizedDelimiterTextField.getText());
    }
  }
);
  SelectionAdapter radioGroupSelectionListener=new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      Button selectedButton=(Button)e.getSource();
      if (selectedButton != delimiterButtons[5]) {
        createDataPreviewTable((String)selectedButton.getData());
        customizedDelimiterTextField.setEnabled(false);
      }
 else {
        customizedDelimiterTextField.setEnabled(true);
        createDataPreviewTable("String_Node_Str");
      }
    }
  }
;
  for (int i=0; i < delimiterButtons.length; i++) {
    delimiterButtons[i].addSelectionListener(radioGroupSelectionListener);
  }
}