Program: 97310
Project: 97310
Buggy source:
protected void createControls(Composite parent,int horizontalSpan,boolean fillText){
  setNotificationsAllowed(false);
  try {
    if (!verticalLabel && horizontalSpan < 2) {
      horizontalSpan=2;
    }
    this.parent=parent;
    ModifyListener textListener=new ModifyListener(){
      @Override public void modifyText(      ModifyEvent e){
        if (sText != null) {
          debug("String_Node_Str");
          text=sText.getText();
          validate();
          notifyXModifiedListeners();
        }
      }
    }
;
    if (fillVertically) {
      composite=new Composite(parent,SWT.NONE);
      GridLayout layout=ALayout.getZeroMarginLayout(1,false);
      layout.verticalSpacing=4;
      composite.setLayout(layout);
      composite.setLayoutData(new GridData(GridData.FILL_BOTH));
    }
 else {
      composite=new Composite(parent,SWT.NONE);
      GridLayout layout=ALayout.getZeroMarginLayout(horizontalSpan,false);
      layout.verticalSpacing=4;
      composite.setLayout(layout);
      GridData gd=new GridData(GridData.FILL_HORIZONTAL);
      gd.horizontalSpan=horizontalSpan;
      composite.setLayoutData(gd);
    }
    if (isDisplayLabel() && !getLabel().equals("String_Node_Str")) {
      labelWidget=new Label(composite,SWT.NONE);
      labelWidget.setText(getLabel() + "String_Node_Str");
      if (getToolTip() != null) {
        labelWidget.setToolTipText(getToolTip());
      }
    }
    sText=new StyledText(composite,getTextStyle());
    GridData gd=new GridData(GridData.FILL_HORIZONTAL);
    if (verticalLabel) {
      gd.horizontalSpan=horizontalSpan;
    }
 else {
      gd.horizontalSpan=horizontalSpan - 1;
    }
    gd.grabExcessHorizontalSpace=true;
    gd.horizontalAlignment=GridData.FILL;
    if (fillVertically) {
      gd.grabExcessVerticalSpace=true;
      gd.verticalAlignment=GridData.FILL;
      if (height > 0) {
        gd.heightHint=height;
      }
      if (dynamicallyCreated) {
        if (height > 0) {
          gd.minimumHeight=height;
        }
 else {
          gd.minimumHeight=60;
        }
      }
    }
    if (fillHorizontally && dynamicallyCreated) {
      gd.grabExcessHorizontalSpace=true;
      gd.minimumWidth=60;
    }
    sText.setLayoutData(gd);
    sText.setMenu(getDefaultMenu());
    sText.addModifyListener(textListener);
    if (text != null) {
      sText.setText(text);
    }
    if (spellCheck) {
      spellPaintListener=new XTextSpellCheckListener(this,OseeDictionary.getInstance());
      sText.addModifyListener(spellPaintListener);
      if (modDict != null) {
        spellPaintListener.addXTextSpellModifyDictionary(modDict);
      }
    }
    urlListener=new XTextUrlListener(this);
    sText.addModifyListener(urlListener);
    if (width != 0 && height != 0) {
      sText.setSize(width,height);
    }
    if (maxTextChars > 0) {
      sText.setTextLimit(maxTextChars);
    }
    if (fillText) {
      updateTextWidget();
    }
    validate();
    sText.setEditable(isEditable());
    if (font != null) {
      sText.setFont(font);
    }
    parent.layout();
  }
  finally {
    setNotificationsAllowed(true);
  }
}

Fixed version (ground truth):
protected void createControls(Composite parent,int horizontalSpan,boolean fillText){
  setNotificationsAllowed(false);
  try {
    if (!verticalLabel && horizontalSpan < 2) {
      horizontalSpan=2;
    }
    this.parent=parent;
    if (fillVertically) {
      composite=new Composite(parent,SWT.NONE);
      GridLayout layout=ALayout.getZeroMarginLayout(1,false);
      layout.verticalSpacing=4;
      composite.setLayout(layout);
      composite.setLayoutData(new GridData(GridData.FILL_BOTH));
    }
 else {
      composite=new Composite(parent,SWT.NONE);
      GridLayout layout=ALayout.getZeroMarginLayout(horizontalSpan,false);
      layout.verticalSpacing=4;
      composite.setLayout(layout);
      GridData gd=new GridData(GridData.FILL_HORIZONTAL);
      gd.horizontalSpan=horizontalSpan;
      composite.setLayoutData(gd);
    }
    if (isDisplayLabel() && !getLabel().equals("String_Node_Str")) {
      labelWidget=new Label(composite,SWT.NONE);
      labelWidget.setText(getLabel() + "String_Node_Str");
      if (getToolTip() != null) {
        labelWidget.setToolTipText(getToolTip());
      }
    }
    sText=new StyledText(composite,getTextStyle());
    GridData gd=new GridData(GridData.FILL_HORIZONTAL);
    if (verticalLabel) {
      gd.horizontalSpan=horizontalSpan;
    }
 else {
      gd.horizontalSpan=horizontalSpan - 1;
    }
    gd.grabExcessHorizontalSpace=true;
    gd.horizontalAlignment=GridData.FILL;
    if (fillVertically) {
      gd.grabExcessVerticalSpace=true;
      gd.verticalAlignment=GridData.FILL;
      if (height > 0) {
        gd.heightHint=height;
      }
      if (dynamicallyCreated) {
        if (height > 0) {
          gd.minimumHeight=height;
        }
 else {
          gd.minimumHeight=60;
        }
      }
    }
    if (fillHorizontally && dynamicallyCreated) {
      gd.grabExcessHorizontalSpace=true;
      gd.minimumWidth=60;
    }
    sText.setLayoutData(gd);
    sText.setMenu(getDefaultMenu());
    sText.addModifyListener(new ModifyListener(){
      @Override public void modifyText(      ModifyEvent e){
        if (Widgets.isAccessible(sText)) {
          text=sText.getText();
          notifyXModifiedListeners();
        }
      }
    }
);
    sText.addFocusListener(new FocusAdapter(){
      @Override public void focusLost(      org.eclipse.swt.events.FocusEvent e){
        if (Widgets.isAccessible(sText)) {
          text=sText.getText();
          validate();
        }
      }
    }
);
    if (text != null) {
      sText.setText(text);
    }
    if (spellCheck) {
      spellPaintListener=new XTextSpellCheckListener(this,OseeDictionary.getInstance());
      sText.addModifyListener(spellPaintListener);
      if (modDict != null) {
        spellPaintListener.addXTextSpellModifyDictionary(modDict);
      }
    }
    urlListener=new XTextUrlListener(this);
    sText.addModifyListener(urlListener);
    if (width != 0 && height != 0) {
      sText.setSize(width,height);
    }
    if (maxTextChars > 0) {
      sText.setTextLimit(maxTextChars);
    }
    if (fillText) {
      updateTextWidget();
    }
    validate();
    sText.setEditable(isEditable());
    if (font != null) {
      sText.setFont(font);
    }
    parent.layout();
  }
  finally {
    setNotificationsAllowed(true);
  }
}