Program: 73691
Project: 73691
Buggy source:
protected Composite getComponent(Composite parent){
  ChartUIUtil.bindHelp(parent,ChartHelpContextIds.POPUP_AXIS_SCALE);
  Composite cmpContent=new Composite(parent,SWT.NONE);
{
    GridLayout glContent=new GridLayout(4,false);
    glContent.marginHeight=10;
    glContent.marginWidth=10;
    glContent.horizontalSpacing=5;
    glContent.verticalSpacing=10;
    cmpContent.setLayout(glContent);
  }
  Group grpScale=new Group(cmpContent,SWT.NONE);
{
    GridData gdGRPScale=new GridData(GridData.FILL_BOTH);
    gdGRPScale.horizontalSpan=4;
    grpScale.setLayoutData(gdGRPScale);
    GridLayout glScale=new GridLayout();
    glScale.numColumns=4;
    glScale.horizontalSpacing=5;
    glScale.verticalSpacing=5;
    glScale.marginHeight=2;
    glScale.marginWidth=7;
    grpScale.setLayout(glScale);
    grpScale.setText(Messages.getString("String_Node_Str"));
  }
  btnStepAuto=new Button(grpScale,SWT.RADIO);
{
    GridData gd=new GridData();
    gd.horizontalSpan=4;
    btnStepAuto.setLayoutData(gd);
    btnStepAuto.setText(Messages.getString("String_Node_Str"));
    btnStepAuto.addListener(SWT.Selection,this);
  }
  btnStepSize=new Button(grpScale,SWT.RADIO);
{
    btnStepSize.setText(Messages.getString("String_Node_Str"));
    btnStepSize.addListener(SWT.Selection,this);
  }
  txtStepSize=new TextEditorComposite(grpScale,SWT.BORDER | SWT.SINGLE,TextEditorComposite.TYPE_NUMBERIC);
{
    GridData gd=new GridData(GridData.FILL_HORIZONTAL);
    gd.widthHint=100;
    txtStepSize.setLayoutData(gd);
    String str="String_Node_Str";
    if (getScale().isSetStep()) {
      str=String.valueOf(getScale().getStep());
    }
    txtStepSize.setText(str);
    txtStepSize.addListener(this);
    txtStepSize.addListener(SWT.Modify,this);
    txtStepSize.setDefaultValue("String_Node_Str");
  }
  lblUnit=new Label(grpScale,SWT.NONE);
{
    lblUnit.setText(Messages.getString("String_Node_Str"));
  }
  cmbScaleUnit=new Combo(grpScale,SWT.DROP_DOWN | SWT.READ_ONLY);
{
    GridData gdCMBScaleUnit=new GridData(GridData.FILL_HORIZONTAL);
    cmbScaleUnit.setLayoutData(gdCMBScaleUnit);
    cmbScaleUnit.addListener(SWT.Selection,this);
    NameSet ns=LiteralHelper.scaleUnitTypeSet;
    cmbScaleUnit.setItems(ns.getDisplayNames());
    cmbScaleUnit.select(ns.getSafeNameIndex(getScale().getUnit().getName()));
  }
  btnStepNumber=new Button(grpScale,SWT.RADIO);
{
    btnStepNumber.setText(Messages.getString("String_Node_Str"));
    btnStepNumber.addListener(SWT.Selection,this);
  }
  spnStepNumber=new Spinner(grpScale,SWT.BORDER);
{
    spnStepNumber.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    spnStepNumber.setMinimum(1);
    spnStepNumber.setMaximum(100);
    spnStepNumber.setSelection(getScale().getStepNumber());
    spnStepNumber.addListener(SWT.Selection,this);
  }
  new Label(grpScale,SWT.NONE);
  new Label(grpScale,SWT.NONE);
  lblMin=new Label(cmpContent,SWT.NONE);
  lblMin.setText(Messages.getString("String_Node_Str"));
  txtScaleMin=createValuePicker(cmpContent,getScale().getMin());
  lblMax=new Label(cmpContent,SWT.NONE);
  lblMax.setText(Messages.getString("String_Node_Str"));
  txtScaleMax=createValuePicker(cmpContent,getScale().getMax());
  btnShowOutside=new Button(cmpContent,SWT.CHECK);
{
    GridData gd=new GridData();
    gd.horizontalSpan=4;
    btnShowOutside.setLayoutData(gd);
    btnShowOutside.setText(Messages.getString("String_Node_Str"));
    btnShowOutside.setSelection(getScale().isShowOutside());
    btnShowOutside.addListener(SWT.Selection,this);
    btnShowOutside.setVisible(getValueType() == TextEditorComposite.TYPE_NUMBERIC);
  }
  btnStepSize.setSelection(getScale().isSetStep());
  if (!btnStepSize.getSelection()) {
    if (getValueType() != TextEditorComposite.TYPE_NUMBERIC) {
      btnStepAuto.setSelection(true);
    }
 else {
      btnStepNumber.setSelection(getScale().isSetStepNumber());
      btnStepAuto.setSelection(!getScale().isSetStep() && !getScale().isSetStepNumber());
    }
  }
  setState();
  return cmpContent;
}

Fixed version (ground truth):
protected Composite getComponent(Composite parent){
  ChartUIUtil.bindHelp(parent,ChartHelpContextIds.POPUP_AXIS_SCALE);
  Composite cmpContent=new Composite(parent,SWT.NONE);
{
    GridLayout glContent=new GridLayout(4,false);
    glContent.marginHeight=10;
    glContent.marginWidth=10;
    glContent.horizontalSpacing=5;
    glContent.verticalSpacing=10;
    cmpContent.setLayout(glContent);
  }
  Group grpScale=new Group(cmpContent,SWT.NONE);
{
    GridData gdGRPScale=new GridData(GridData.FILL_BOTH);
    gdGRPScale.horizontalSpan=4;
    grpScale.setLayoutData(gdGRPScale);
    GridLayout glScale=new GridLayout();
    glScale.numColumns=4;
    glScale.horizontalSpacing=5;
    glScale.verticalSpacing=5;
    glScale.marginHeight=2;
    glScale.marginWidth=7;
    grpScale.setLayout(glScale);
    grpScale.setText(Messages.getString("String_Node_Str"));
  }
  btnStepAuto=new Button(grpScale,SWT.RADIO);
{
    GridData gd=new GridData();
    gd.horizontalSpan=4;
    btnStepAuto.setLayoutData(gd);
    btnStepAuto.setText(Messages.getString("String_Node_Str"));
    btnStepAuto.addListener(SWT.Selection,this);
  }
  btnStepSize=new Button(grpScale,SWT.RADIO);
{
    btnStepSize.setText(Messages.getString("String_Node_Str"));
    btnStepSize.addListener(SWT.Selection,this);
  }
  txtStepSize=new TextEditorComposite(grpScale,SWT.BORDER | SWT.SINGLE,TextEditorComposite.TYPE_NUMBERIC);
{
    GridData gd=new GridData(GridData.FILL_HORIZONTAL);
    gd.widthHint=100;
    txtStepSize.setLayoutData(gd);
    String str="String_Node_Str";
    if (getScale().isSetStep()) {
      str=String.valueOf(getScale().getStep());
    }
    txtStepSize.setText(str);
    txtStepSize.addListener(this);
    txtStepSize.addListener(SWT.Modify,this);
    txtStepSize.setDefaultValue("String_Node_Str");
  }
  lblUnit=new Label(grpScale,SWT.NONE);
{
    lblUnit.setText(Messages.getString("String_Node_Str"));
  }
  cmbScaleUnit=new Combo(grpScale,SWT.DROP_DOWN | SWT.READ_ONLY);
{
    GridData gdCMBScaleUnit=new GridData(GridData.FILL_HORIZONTAL);
    cmbScaleUnit.setLayoutData(gdCMBScaleUnit);
    cmbScaleUnit.addListener(SWT.Selection,this);
    NameSet ns=LiteralHelper.scaleUnitTypeSet;
    cmbScaleUnit.setItems(ns.getDisplayNames());
    cmbScaleUnit.select(ns.getSafeNameIndex(getScale().getUnit().getName()));
  }
  btnStepNumber=new Button(grpScale,SWT.RADIO);
{
    btnStepNumber.setText(Messages.getString("String_Node_Str"));
    btnStepNumber.addListener(SWT.Selection,this);
  }
  spnStepNumber=new Spinner(grpScale,SWT.BORDER);
{
    spnStepNumber.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    spnStepNumber.setMinimum(1);
    spnStepNumber.setMaximum(100);
    spnStepNumber.setSelection(getScale().getStepNumber());
    spnStepNumber.addListener(SWT.Selection,this);
  }
  new Label(grpScale,SWT.NONE);
  new Label(grpScale,SWT.NONE);
  lblMin=new Label(cmpContent,SWT.NONE);
  lblMin.setText(Messages.getString("String_Node_Str"));
  txtScaleMin=createValuePicker(cmpContent,getScale().getMin());
  lblMax=new Label(cmpContent,SWT.NONE);
  lblMax.setText(Messages.getString("String_Node_Str"));
  txtScaleMax=createValuePicker(cmpContent,getScale().getMax());
  btnShowOutside=new Button(cmpContent,SWT.CHECK);
{
    GridData gd=new GridData();
    gd.horizontalSpan=4;
    btnShowOutside.setLayoutData(gd);
    btnShowOutside.setText(Messages.getString("String_Node_Str"));
    btnShowOutside.setSelection(getScale().isShowOutside());
    btnShowOutside.addListener(SWT.Selection,this);
    btnShowOutside.setVisible(getValueType() == TextEditorComposite.TYPE_NUMBERIC);
  }
  btnStepSize.setSelection(getScale().isSetStep());
  if (!btnStepSize.getSelection()) {
    if (getValueType() != TextEditorComposite.TYPE_NUMBERIC) {
      btnStepAuto.setSelection(true);
    }
 else {
      btnStepNumber.setSelection(getScale().isSetStepNumber());
      btnStepAuto.setSelection(!getScale().isSetStep() && !getScale().isSetStepNumber());
    }
  }
  setState();
  if (getValueType() == TextEditorComposite.TYPE_DATETIME) {
    parent.getShell().addListener(SWT.Close,new Listener(){
      public void handleEvent(      Event event){
        if (event.type == SWT.Close) {
          DataElement data=txtScaleMin.getDataElement();
          if (data == null) {
            getScale().eUnset(ComponentPackage.eINSTANCE.getScale_Min());
          }
 else {
            getScale().setMin(data);
          }
          data=txtScaleMax.getDataElement();
          if (data == null) {
            getScale().eUnset(ComponentPackage.eINSTANCE.getScale_Max());
          }
 else {
            getScale().setMax(data);
          }
          setState();
        }
      }
    }
);
  }
  return cmpContent;
}