Program: 117887
Project: 117887
Buggy source:
@Override public Control createControl(Composite subComposite,IElementParameter param,int numInRow,int nbInRow,int top,Control lastControl){
  FormData data;
  CLabel labelLabel;
  if (param.getValue().equals("String_Node_Str")) {
    labelLabel=getWidgetFactory().createCLabel(subComposite,param.getDisplayName(),SWT.SHADOW_NONE);
  }
 else {
    labelLabel=getWidgetFactory().createCLabel(subComposite,(String)param.getValue(),SWT.SHADOW_NONE);
  }
  RGB rgb=param.getColor();
  if (rgb != null) {
    Color color=new Color(null,rgb);
    addResourceDisposeListener(labelLabel,color);
    labelLabel.setForeground(color);
  }
  RGB bgRgb=param.getBackgroundColor();
  if (bgRgb != null) {
    Color bgColor=new Color(null,bgRgb);
    addResourceDisposeListener(labelLabel,bgColor);
    labelLabel.setBackground(bgColor);
  }
  labelLabel.setData(PARAMETER_NAME,param.getName());
  if (elem instanceof Node) {
    labelLabel.setToolTipText(VARIABLE_TOOLTIP + param.getVariableName());
  }
  hashCurControls.put(param.getName(),labelLabel);
  data=new FormData();
  if (lastControl != null) {
    data.left=new FormAttachment(lastControl,0);
  }
 else {
    data.left=new FormAttachment((((numInRow - 1) * MAX_PERCENT) / nbInRow),0);
  }
  data.top=new FormAttachment(0,top);
  labelLabel.setLayoutData(data);
  if (numInRow != 1) {
    labelLabel.setAlignment(SWT.RIGHT);
  }
  data=new FormData();
  int currentLabelWidth=STANDARD_LABEL_WIDTH;
  GC gc=new GC(labelLabel);
  Point labelSize=gc.stringExtent(param.getDisplayName());
  gc.dispose();
  if ((labelSize.x + ITabbedPropertyConstants.HSPACE) > currentLabelWidth) {
    currentLabelWidth=labelSize.x + ITabbedPropertyConstants.HSPACE;
  }
  if (numInRow == 1) {
    if (lastControl != null) {
      data.left=new FormAttachment(lastControl,currentLabelWidth);
    }
 else {
      data.left=new FormAttachment(0,currentLabelWidth);
    }
  }
 else {
    data.left=new FormAttachment(labelLabel,0,SWT.RIGHT);
  }
  Point initialSize=labelLabel.computeSize(SWT.DEFAULT,SWT.DEFAULT);
  dynamicProperty.setCurRowSize(initialSize.y + ITabbedPropertyConstants.VSPACE);
  return null;
}

Fixed version (ground truth):
@Override public Control createControl(Composite subComposite,IElementParameter param,int numInRow,int nbInRow,int top,Control lastControl){
  FormData data;
  CLabel labelLabel;
  if (param.getValue().equals("String_Node_Str")) {
    labelLabel=getWidgetFactory().createCLabel(subComposite,param.getDisplayName(),SWT.SHADOW_NONE);
  }
 else {
    labelLabel=getWidgetFactory().createCLabel(subComposite,(String)param.getValue(),SWT.SHADOW_NONE);
  }
  RGB rgb=param.getColor();
  RGB bgRgb=param.getBackgroundColor();
  if (rgb != null || bgRgb != null) {
    CoreUIPlugin.setCSSClass(labelLabel,"String_Node_Str",false);
    if (rgb != null) {
      CoreUIPlugin.removeCSSAttribute(labelLabel,"String_Node_Str");
      Color color=new Color(null,rgb);
      addResourceDisposeListener(labelLabel,color);
      labelLabel.setForeground(color);
    }
    if (bgRgb != null) {
      CoreUIPlugin.removeCSSAttribute(labelLabel,"String_Node_Str");
      Color bgColor=new Color(null,bgRgb);
      addResourceDisposeListener(labelLabel,bgColor);
      labelLabel.setBackground(bgColor);
    }
  }
  labelLabel.setData(PARAMETER_NAME,param.getName());
  if (elem instanceof Node) {
    labelLabel.setToolTipText(VARIABLE_TOOLTIP + param.getVariableName());
  }
  hashCurControls.put(param.getName(),labelLabel);
  data=new FormData();
  if (lastControl != null) {
    data.left=new FormAttachment(lastControl,0);
  }
 else {
    data.left=new FormAttachment((((numInRow - 1) * MAX_PERCENT) / nbInRow),0);
  }
  data.top=new FormAttachment(0,top);
  labelLabel.setLayoutData(data);
  if (numInRow != 1) {
    labelLabel.setAlignment(SWT.RIGHT);
  }
  data=new FormData();
  int currentLabelWidth=STANDARD_LABEL_WIDTH;
  GC gc=new GC(labelLabel);
  Point labelSize=gc.stringExtent(param.getDisplayName());
  gc.dispose();
  if ((labelSize.x + ITabbedPropertyConstants.HSPACE) > currentLabelWidth) {
    currentLabelWidth=labelSize.x + ITabbedPropertyConstants.HSPACE;
  }
  if (numInRow == 1) {
    if (lastControl != null) {
      data.left=new FormAttachment(lastControl,currentLabelWidth);
    }
 else {
      data.left=new FormAttachment(0,currentLabelWidth);
    }
  }
 else {
    data.left=new FormAttachment(labelLabel,0,SWT.RIGHT);
  }
  Point initialSize=labelLabel.computeSize(SWT.DEFAULT,SWT.DEFAULT);
  dynamicProperty.setCurRowSize(initialSize.y + ITabbedPropertyConstants.VSPACE);
  return null;
}