Program: 107782
Project: 107782
Buggy source:
@Override protected Control createDialogArea(Composite parent){
  Composite composite=(Composite)super.createDialogArea(parent);
  Composite base=new Composite(composite,SWT.NONE);
  base.setLayoutData(SWTUtil.createFillGridData());
  base.setLayout(SWTUtil.createGridLayout(1,false));
  Group group1=new Group(parent,SWT.SHADOW_ETCHED_IN);
  group1.setText(Resources.getMessage("String_Node_Str"));
  GridData data1=SWTUtil.createFillGridData();
  data1.horizontalIndent=5;
  group1.setLayoutData(data1);
  group1.setLayout(GridLayoutFactory.swtDefaults().numColumns(2).create());
  final Button radio11=new Button(group1,SWT.RADIO);
  radio11.setText(Resources.getMessage("String_Node_Str"));
  radio11.setLayoutData(GridDataFactory.swtDefaults().span(2,1).create());
  radio11.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      if (radio11.getSelection()) {
        result.searchType=SearchType.OPTIMAL;
      }
    }
  }
);
  final Button radio12=new Button(group1,SWT.RADIO);
  radio12.setText(Resources.getMessage("String_Node_Str"));
  radio12.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      if (radio12.getSelection()) {
        result.searchType=SearchType.STEP_LIMIT;
      }
    }
  }
);
  this.txtHeuristicSearchStepLimit=new Text(group1,SWT.BORDER);
  this.txtHeuristicSearchStepLimit.setLayoutData(GridDataFactory.fillDefaults().grab(true,false).create());
  this.txtHeuristicSearchStepLimit.setText(String.valueOf(result.heuristicSearchStepLimit));
  this.txtHeuristicSearchStepLimit.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent arg0){
      radio12.setSelection(true);
      result.searchType=SearchType.STEP_LIMIT;
      checkValidity();
    }
  }
);
  final Button radio13=new Button(group1,SWT.RADIO);
  radio13.setText(Resources.getMessage("String_Node_Str"));
  radio13.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      if (radio13.getSelection()) {
        result.searchType=SearchType.TIME_LIMIT;
      }
    }
  }
);
  this.txtHeuristicSearchTimeLimit=new Text(group1,SWT.BORDER);
  this.txtHeuristicSearchTimeLimit.setLayoutData(GridDataFactory.fillDefaults().grab(true,false).create());
  this.txtHeuristicSearchTimeLimit.setText(String.valueOf(result.heuristicSearchTimeLimit));
  this.txtHeuristicSearchTimeLimit.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent arg0){
      radio13.setSelection(true);
      result.searchType=SearchType.TIME_LIMIT;
      checkValidity();
    }
  }
);
  if (this.optimalSearchAvailable) {
    radio11.setSelection(true);
    result.searchType=SearchType.OPTIMAL;
  }
 else {
    radio11.setEnabled(false);
    radio12.setSelection(true);
    result.searchType=SearchType.STEP_LIMIT;
    createMessage(group1,Resources.getMessage("String_Node_Str"));
  }
  Group group2=new Group(parent,SWT.SHADOW_ETCHED_IN);
  group2.setText(Resources.getMessage("String_Node_Str"));
  GridData data2=SWTUtil.createFillGridData();
  data2.horizontalIndent=5;
  group2.setLayoutData(data2);
  group2.setLayout(GridLayoutFactory.swtDefaults().numColumns(2).create());
  final Button radio21=new Button(group2,SWT.RADIO);
  radio21.setText(Resources.getMessage("String_Node_Str"));
  radio21.setLayoutData(GridDataFactory.swtDefaults().span(2,1).create());
  radio21.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      if (radio21.getSelection()) {
        result.transformationType=TransformationType.GLOBAL;
      }
    }
  }
);
  final Button radio22=new Button(group2,SWT.RADIO);
  radio22.setText(Resources.getMessage("String_Node_Str"));
  radio22.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      if (radio22.getSelection()) {
        result.transformationType=TransformationType.LOCAL;
      }
    }
  }
);
  this.textNumIterations=new Text(group2,SWT.BORDER);
  this.textNumIterations.setLayoutData(GridDataFactory.fillDefaults().grab(true,false).create());
  this.textNumIterations.setText(String.valueOf(result.numIterations));
  this.textNumIterations.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent arg0){
      radio22.setSelection(true);
      result.transformationType=TransformationType.LOCAL;
      checkValidity();
    }
  }
);
  radio21.setSelection(true);
  result.transformationType=TransformationType.GLOBAL;
  if (this.localRecodingAvailable) {
    radio22.setEnabled(true);
  }
 else {
    radio22.setEnabled(false);
    textNumIterations.setEnabled(false);
    createMessage(group2,Resources.getMessage("String_Node_Str"));
  }
  applyDialogFont(base);
  checkValidity();
  return composite;
}

Fixed version (ground truth):
@Override protected Control createDialogArea(Composite parent){
  Composite composite=(Composite)super.createDialogArea(parent);
  Composite base=new Composite(composite,SWT.NONE);
  base.setLayoutData(SWTUtil.createFillGridData());
  base.setLayout(SWTUtil.createGridLayout(1,false));
  Group group1=new Group(parent,SWT.SHADOW_ETCHED_IN);
  group1.setText(Resources.getMessage("String_Node_Str"));
  GridData data1=SWTUtil.createFillGridData();
  data1.horizontalIndent=5;
  group1.setLayoutData(data1);
  group1.setLayout(GridLayoutFactory.swtDefaults().numColumns(2).create());
  final Button radio11=new Button(group1,SWT.RADIO);
  radio11.setText(Resources.getMessage("String_Node_Str"));
  radio11.setLayoutData(GridDataFactory.swtDefaults().span(2,1).create());
  radio11.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      if (radio11.getSelection()) {
        result.searchType=SearchType.OPTIMAL;
      }
    }
  }
);
  final Button radio12=new Button(group1,SWT.RADIO);
  radio12.setText(Resources.getMessage("String_Node_Str"));
  radio12.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      if (radio12.getSelection()) {
        result.searchType=SearchType.STEP_LIMIT;
      }
    }
  }
);
  this.txtHeuristicSearchStepLimit=new Text(group1,SWT.BORDER);
  this.txtHeuristicSearchStepLimit.setLayoutData(GridDataFactory.fillDefaults().grab(true,false).create());
  this.txtHeuristicSearchStepLimit.setText(String.valueOf(result.heuristicSearchStepLimit));
  final Button radio13=new Button(group1,SWT.RADIO);
  radio13.setText(Resources.getMessage("String_Node_Str"));
  radio13.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      if (radio13.getSelection()) {
        result.searchType=SearchType.TIME_LIMIT;
      }
    }
  }
);
  this.txtHeuristicSearchStepLimit.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent arg0){
      radio12.setSelection(true);
      radio11.setSelection(false);
      radio13.setSelection(false);
      result.searchType=SearchType.STEP_LIMIT;
      checkValidity();
    }
  }
);
  this.txtHeuristicSearchTimeLimit=new Text(group1,SWT.BORDER);
  this.txtHeuristicSearchTimeLimit.setLayoutData(GridDataFactory.fillDefaults().grab(true,false).create());
  this.txtHeuristicSearchTimeLimit.setText(String.valueOf(result.heuristicSearchTimeLimit));
  this.txtHeuristicSearchTimeLimit.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent arg0){
      radio13.setSelection(true);
      radio11.setSelection(false);
      radio12.setSelection(false);
      result.searchType=SearchType.TIME_LIMIT;
      checkValidity();
    }
  }
);
  if (this.optimalSearchAvailable) {
    radio11.setSelection(true);
    result.searchType=SearchType.OPTIMAL;
  }
 else {
    radio11.setEnabled(false);
    radio12.setSelection(true);
    result.searchType=SearchType.STEP_LIMIT;
    createMessage(group1,Resources.getMessage("String_Node_Str"));
  }
  Group group2=new Group(parent,SWT.SHADOW_ETCHED_IN);
  group2.setText(Resources.getMessage("String_Node_Str"));
  GridData data2=SWTUtil.createFillGridData();
  data2.horizontalIndent=5;
  group2.setLayoutData(data2);
  group2.setLayout(GridLayoutFactory.swtDefaults().numColumns(2).create());
  final Button radio21=new Button(group2,SWT.RADIO);
  radio21.setText(Resources.getMessage("String_Node_Str"));
  radio21.setLayoutData(GridDataFactory.swtDefaults().span(2,1).create());
  radio21.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      if (radio21.getSelection()) {
        result.transformationType=TransformationType.GLOBAL;
      }
    }
  }
);
  final Button radio22=new Button(group2,SWT.RADIO);
  radio22.setText(Resources.getMessage("String_Node_Str"));
  radio22.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent arg0){
      if (radio22.getSelection()) {
        result.transformationType=TransformationType.LOCAL;
      }
    }
  }
);
  this.textNumIterations=new Text(group2,SWT.BORDER);
  this.textNumIterations.setLayoutData(GridDataFactory.fillDefaults().grab(true,false).create());
  this.textNumIterations.setText(String.valueOf(result.numIterations));
  this.textNumIterations.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent arg0){
      radio22.setSelection(true);
      radio21.setSelection(false);
      result.transformationType=TransformationType.LOCAL;
      checkValidity();
    }
  }
);
  radio21.setSelection(true);
  result.transformationType=TransformationType.GLOBAL;
  if (this.localRecodingAvailable) {
    radio22.setEnabled(true);
  }
 else {
    radio22.setEnabled(false);
    textNumIterations.setEnabled(false);
    createMessage(group2,Resources.getMessage("String_Node_Str"));
  }
  applyDialogFont(base);
  checkValidity();
  return composite;
}