Program: 10936
Project: 10936
Buggy source:
public void createControl(Composite parent){
  Composite composite=new Composite(parent,SWT.NONE);
  GridLayoutFactory.fillDefaults().numColumns(2).spacing(10,LayoutConstants.getSpacing().y).applyTo(composite);
  Label label=new Label(composite,SWT.NONE);
  label.setText("String_Node_Str");
  nameText=new Text(composite,SWT.BORDER);
  GridDataFactory.fillDefaults().grab(true,false).applyTo(nameText);
  nameText.addModifyListener(new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      service.setName(nameText.getText());
    }
  }
);
  bindingContext=new DataBindingContext();
  map=new WritableMap();
  WizardPageSupport.create(this,bindingContext);
  bindingContext.bindValue(SWTObservables.observeText(nameText,SWT.Modify),Observables.observeMapEntry(map,"String_Node_Str"),new UpdateValueStrategy().setAfterConvertValidator(new StringValidator()),null);
  label=new Label(composite,SWT.NONE);
  label.setText("String_Node_Str");
  typeCombo=new Combo(composite,SWT.READ_ONLY | SWT.BORDER);
  GridDataFactory.fillDefaults().grab(true,false).applyTo(typeCombo);
  typeCombo.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent event){
      int index=typeCombo.getSelectionIndex();
      if (index != -1) {
        ServiceConfiguration configuration=configurations.get(index);
        service.setType(configuration.getType());
        service.setVendor(configuration.getVendor());
        service.setVersion(configuration.getVersion());
      }
      refreshPlan();
    }
  }
);
  bindingContext.bindValue(SWTObservables.observeSelection(typeCombo),Observables.observeMapEntry(map,"String_Node_Str"),new UpdateValueStrategy().setAfterConvertValidator(new ComboValidator("String_Node_Str")),null);
  pageBook=new PageBook(composite,SWT.NONE);
  GridDataFactory.fillDefaults().grab(true,true).span(2,1).applyTo(pageBook);
  planGroup=new Group(pageBook,SWT.BORDER);
  GridDataFactory.fillDefaults().grab(true,true).applyTo(planGroup);
  planGroup.setLayout(new GridLayout());
  planGroup.setVisible(false);
  planGroup.setText(getPlanLabel());
  MultiValidator validator=new MultiValidator(){
    protected IStatus validate(){
      if (planObservable.getValue() == null) {
        return ValidationStatus.cancel(getValidationErrorMessage());
      }
      return ValidationStatus.ok();
    }
  }
;
  bindingContext.addValidationStatusProvider(validator);
  Dialog.applyDialogFont(composite);
  setControl(composite);
}

Fixed version (ground truth):
public void createControl(Composite parent){
  Composite composite=new Composite(parent,SWT.NONE);
  GridLayoutFactory.fillDefaults().numColumns(2).spacing(10,LayoutConstants.getSpacing().y).applyTo(composite);
  Label label=new Label(composite,SWT.NONE);
  label.setText("String_Node_Str");
  nameText=new Text(composite,SWT.BORDER);
  GridDataFactory.fillDefaults().grab(true,false).applyTo(nameText);
  nameText.addModifyListener(new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      service.setName(nameText.getText());
    }
  }
);
  bindingContext=new DataBindingContext();
  map=new WritableMap();
  WizardPageSupport.create(this,bindingContext);
  bindingContext.bindValue(SWTObservables.observeText(nameText,SWT.Modify),Observables.observeMapEntry(map,"String_Node_Str"),new UpdateValueStrategy().setAfterConvertValidator(new StringValidator()),null);
  label=new Label(composite,SWT.NONE);
  label.setText("String_Node_Str");
  typeCombo=new Combo(composite,SWT.READ_ONLY | SWT.BORDER);
  GridDataFactory.fillDefaults().grab(true,false).applyTo(typeCombo);
  typeCombo.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent event){
      int index=typeCombo.getSelectionIndex();
      if (index != -1) {
        ServiceConfiguration configuration=configurations.get(index);
        setCloudService(service,configuration);
      }
      refreshPlan();
    }
  }
);
  bindingContext.bindValue(SWTObservables.observeSelection(typeCombo),Observables.observeMapEntry(map,"String_Node_Str"),new UpdateValueStrategy().setAfterConvertValidator(new ComboValidator("String_Node_Str")),null);
  pageBook=new PageBook(composite,SWT.NONE);
  GridDataFactory.fillDefaults().grab(true,true).span(2,1).applyTo(pageBook);
  planGroup=new Group(pageBook,SWT.BORDER);
  GridDataFactory.fillDefaults().grab(true,true).applyTo(planGroup);
  planGroup.setLayout(new GridLayout());
  planGroup.setVisible(false);
  planGroup.setText(getPlanLabel());
  MultiValidator validator=new MultiValidator(){
    protected IStatus validate(){
      if (planObservable.getValue() == null) {
        return ValidationStatus.cancel(getValidationErrorMessage());
      }
      return ValidationStatus.ok();
    }
  }
;
  bindingContext.addValidationStatusProvider(validator);
  Dialog.applyDialogFont(composite);
  setControl(composite);
}