Program: 119155
Project: 119155
Buggy source:
@Override public Control createControl(Composite subComposite,final IElementParameter param,int numInRow,int nbInRow,int top,Control lastControl){
  final Composite container=subComposite;
  Button subButton=getWidgetFactory().createButton(container,"String_Node_Str",SWT.PUSH);
  subButton.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      initHadoopVersionType();
      boolean readonly=false;
      IElementParameter propertyParameter=elem.getElementParameter(EParameterName.PROPERTY_TYPE.getName());
      if (propertyParameter != null) {
        if (EmfComponent.REPOSITORY.equals(propertyParameter.getValue())) {
          readonly=true;
        }
      }
      HadoopCustomVersionDefineDialog customVersionDialog=new HadoopCustomVersionDefineDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),getCustomVersionMap()){
        @Override protected ECustomVersionType[] getDisplayTypes(){
          return new ECustomVersionType[]{versionType};
        }
      }
;
      customVersionDialog.setReadonly(readonly);
      Set<String> oldLibList=customVersionDialog.getLibList(versionType.getGroup());
      if (customVersionDialog.open() == Window.OK) {
        Set<String> newLibList=customVersionDialog.getLibList(versionType.getGroup());
        if (oldLibList != null && newLibList != null && oldLibList.size() == newLibList.size() && oldLibList.containsAll(newLibList)) {
        }
 else {
          String customJars=customVersionDialog.getLibListStr(versionType.getGroup());
          executeCommand(new PropertyChangeCommand(elem,EParameterName.HADOOP_CUSTOM_JARS.getName(),StringUtils.trimToEmpty(customJars)));
        }
      }
    }
  }
);
  subButton.setImage(ImageProvider.getImage(CoreUIPlugin.getImageDescriptor(DOTS_BUTTON)));
  FormData data=new FormData();
  data.left=new FormAttachment(lastControl,0);
  data.right=new FormAttachment(lastControl,STANDARD_BUTTON_WIDTH,SWT.RIGHT);
  data.top=new FormAttachment(0,top);
  data.height=STANDARD_HEIGHT - 2;
  subButton.setLayoutData(data);
  return container;
}

Fixed version (ground truth):
@Override public Control createControl(Composite subComposite,final IElementParameter param,int numInRow,int nbInRow,int top,Control lastControl){
  final Composite container=subComposite;
  Button subButton=getWidgetFactory().createButton(container,"String_Node_Str",SWT.PUSH);
  subButton.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      initHadoopVersionType();
      boolean readonly=false;
      String readOnlyIfString=param.getReadOnlyIf();
      if (StringUtils.isNotEmpty(readOnlyIfString)) {
        if (param.isReadOnly(elem.getElementParameters())) {
          readonly=true;
        }
      }
      if (readonly == false) {
        IElementParameter propertyParameter=elem.getElementParameter(EParameterName.PROPERTY_TYPE.getName());
        if (propertyParameter != null) {
          if (EmfComponent.REPOSITORY.equals(propertyParameter.getValue())) {
            readonly=true;
          }
        }
      }
      HadoopCustomVersionDefineDialog customVersionDialog=new HadoopCustomVersionDefineDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),getCustomVersionMap()){
        @Override protected ECustomVersionType[] getDisplayTypes(){
          return new ECustomVersionType[]{versionType};
        }
      }
;
      customVersionDialog.setReadonly(readonly);
      Set<String> oldLibList=customVersionDialog.getLibList(versionType.getGroup());
      if (customVersionDialog.open() == Window.OK) {
        Set<String> newLibList=customVersionDialog.getLibList(versionType.getGroup());
        if (oldLibList != null && newLibList != null && oldLibList.size() == newLibList.size() && oldLibList.containsAll(newLibList)) {
        }
 else {
          String customJars=customVersionDialog.getLibListStr(versionType.getGroup());
          executeCommand(new PropertyChangeCommand(elem,EParameterName.HADOOP_CUSTOM_JARS.getName(),StringUtils.trimToEmpty(customJars)));
        }
      }
    }
  }
);
  subButton.setImage(ImageProvider.getImage(CoreUIPlugin.getImageDescriptor(DOTS_BUTTON)));
  FormData data=new FormData();
  data.left=new FormAttachment(lastControl,0);
  data.right=new FormAttachment(lastControl,STANDARD_BUTTON_WIDTH,SWT.RIGHT);
  data.top=new FormAttachment(0,top);
  data.height=STANDARD_HEIGHT - 2;
  subButton.setLayoutData(data);
  return container;
}