Program: 119245
Project: 119245
Buggy source:
@Override public Control createControl(Composite subComposite,IElementParameter param,int numInRow,int nbInRow,int top,Control lastControl){
  Button btnEdit=getWidgetFactory().createButton(subComposite,"String_Node_Str",SWT.PUSH);
  FormData data;
  btnEdit.setImage(ImageProvider.getImage(CoreUIPlugin.getImageDescriptor(DOTS_BUTTON)));
  btnEdit.setData(NAME,DATE);
  btnEdit.setData(PARAMETER_NAME,param.getName());
  btnEdit.setEnabled(!param.isReadOnly());
  btnEdit.addSelectionListener(listenerSelection);
  DecoratedField dField=new DecoratedField(subComposite,SWT.BORDER,new SelectAllTextControlCreator());
  if (param.isRequired()) {
    FieldDecoration decoration=FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED);
    dField.addFieldDecoration(decoration,SWT.RIGHT | SWT.TOP,false);
  }
  if (param.isRepositoryValueUsed()) {
    FieldDecoration decoration=FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
    decoration.setDescription(Messages.getString("String_Node_Str"));
    dField.addFieldDecoration(decoration,SWT.RIGHT | SWT.BOTTOM,false);
  }
  Control cLayout=dField.getLayoutControl();
  dateText=(Text)dField.getControl();
  dateText.setData(PARAMETER_NAME,param.getName());
  cLayout.setBackground(subComposite.getBackground());
  dateText.setEditable(!param.isReadOnly());
  editionControlHelper.register(param.getName(),dateText);
  addDragAndDropTarget(dateText);
  if (elem instanceof Node) {
    dateText.setToolTipText(VARIABLE_TOOLTIP + param.getVariableName());
  }
  hashCurControls.put(param.getName(),dateText);
  CLabel labelLabel=getWidgetFactory().createCLabel(subComposite,param.getDisplayName());
  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();
  gc=new GC(dateText);
  Point defaultDateDateSize=gc.stringExtent("String_Node_Str");
  Point currentDateSize=gc.stringExtent((String)param.getValue());
  gc.dispose();
  int currentDateWidth=defaultDateDateSize.x + ITabbedPropertyConstants.HSPACE + STANDARD_TEXT_WIDTH_ADDITION;
  if ((currentDateSize.x + ITabbedPropertyConstants.HSPACE + STANDARD_TEXT_WIDTH_ADDITION) > currentDateWidth) {
    currentDateWidth=currentDateSize.x + ITabbedPropertyConstants.HSPACE + STANDARD_TEXT_WIDTH_ADDITION;
  }
  dateText.computeSize(SWT.DEFAULT,SWT.DEFAULT);
  if ((labelSize.x + ITabbedPropertyConstants.HSPACE) > currentLabelWidth) {
    currentLabelWidth=labelSize.x + ITabbedPropertyConstants.HSPACE;
  }
  data.left=new FormAttachment(labelLabel,0,SWT.RIGHT);
  data.right=new FormAttachment(labelLabel,currentDateWidth,SWT.RIGHT);
  data.top=new FormAttachment(btnEdit,0,SWT.CENTER);
  cLayout.setLayoutData(data);
  data=new FormData();
  data.left=new FormAttachment(cLayout,0,SWT.RIGHT);
  data.right=new FormAttachment(cLayout,STANDARD_BUTTON_WIDTH,SWT.RIGHT);
  data.top=new FormAttachment(0,top);
  data.height=STANDARD_HEIGHT - 2;
  btnEdit.setLayoutData(data);
  Point initialSize=dField.getLayoutControl().computeSize(SWT.DEFAULT,SWT.DEFAULT);
  dynamicProperty.setCurRowSize(initialSize.y + ITabbedPropertyConstants.VSPACE);
  return btnEdit;
}

Fixed version (ground truth):
@Override public Control createControl(Composite subComposite,IElementParameter param,int numInRow,int nbInRow,int top,Control lastControl){
  FormData data;
  CLabel labelLabel=getWidgetFactory().createCLabel(subComposite,param.getDisplayName());
  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);
  }
  Button btnEdit=getWidgetFactory().createButton(subComposite,"String_Node_Str",SWT.PUSH);
  btnEdit.setImage(ImageProvider.getImage(CoreUIPlugin.getImageDescriptor(DOTS_BUTTON)));
  btnEdit.setData(NAME,DATE);
  btnEdit.setData(PARAMETER_NAME,param.getName());
  btnEdit.setEnabled(!param.isReadOnly());
  btnEdit.addSelectionListener(listenerSelection);
  DecoratedField dField=new DecoratedField(subComposite,SWT.BORDER,new SelectAllTextControlCreator());
  if (param.isRequired()) {
    FieldDecoration decoration=FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED);
    dField.addFieldDecoration(decoration,SWT.RIGHT | SWT.TOP,false);
  }
  if (param.isRepositoryValueUsed()) {
    FieldDecoration decoration=FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
    decoration.setDescription(Messages.getString("String_Node_Str"));
    dField.addFieldDecoration(decoration,SWT.RIGHT | SWT.BOTTOM,false);
  }
  Control cLayout=dField.getLayoutControl();
  dateText=(Text)dField.getControl();
  dateText.setData(PARAMETER_NAME,param.getName());
  cLayout.setBackground(subComposite.getBackground());
  dateText.setEditable(!param.isReadOnly());
  editionControlHelper.register(param.getName(),dateText);
  addDragAndDropTarget(dateText);
  if (elem instanceof Node) {
    dateText.setToolTipText(VARIABLE_TOOLTIP + param.getVariableName());
  }
  hashCurControls.put(param.getName(),dateText);
  data=new FormData();
  int currentLabelWidth=STANDARD_LABEL_WIDTH;
  GC gc=new GC(labelLabel);
  Point labelSize=gc.stringExtent(param.getDisplayName());
  gc.dispose();
  gc=new GC(dateText);
  Point defaultDateDateSize=gc.stringExtent("String_Node_Str");
  Point currentDateSize=gc.stringExtent((String)param.getValue());
  gc.dispose();
  int currentDateWidth=defaultDateDateSize.x + ITabbedPropertyConstants.HSPACE + STANDARD_TEXT_WIDTH_ADDITION;
  if ((currentDateSize.x + ITabbedPropertyConstants.HSPACE + STANDARD_TEXT_WIDTH_ADDITION) > currentDateWidth) {
    currentDateWidth=currentDateSize.x + ITabbedPropertyConstants.HSPACE + STANDARD_TEXT_WIDTH_ADDITION;
  }
  dateText.computeSize(SWT.DEFAULT,SWT.DEFAULT);
  if ((labelSize.x + ITabbedPropertyConstants.HSPACE) > currentLabelWidth) {
    currentLabelWidth=labelSize.x + ITabbedPropertyConstants.HSPACE;
  }
  data.left=new FormAttachment(labelLabel,0,SWT.RIGHT);
  data.right=new FormAttachment(labelLabel,currentDateWidth,SWT.RIGHT);
  data.top=new FormAttachment(labelLabel,0,SWT.CENTER);
  cLayout.setLayoutData(data);
  data=new FormData();
  data.left=new FormAttachment(cLayout,0,SWT.RIGHT);
  data.right=new FormAttachment(cLayout,STANDARD_BUTTON_WIDTH,SWT.RIGHT);
  data.top=new FormAttachment(labelLabel,0,SWT.CENTER);
  data.height=STANDARD_HEIGHT - 2;
  btnEdit.setLayoutData(data);
  Point initialSize=dField.getLayoutControl().computeSize(SWT.DEFAULT,SWT.DEFAULT);
  dynamicProperty.setCurRowSize(initialSize.y + ITabbedPropertyConstants.VSPACE);
  return btnEdit;
}