Program: 121218
Project: 121218
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){
      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);
      if (customVersionDialog.open() == Window.OK) {
        String customJars=customVersionDialog.getLibListStr(versionType.getGroup());
        executeCommand(new PropertyChangeCommand(elem,EParameterName.HADOOP_CUSTOM_JARS.getName(),StringUtils.trimToEmpty(customJars)));
      }
    }
  }
);
  subButton.setImage(ImageProvider.getImage(CorePlugin.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;
      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);
      if (customVersionDialog.open() == Window.OK) {
        String customJars=customVersionDialog.getLibListStr(versionType.getGroup());
        executeCommand(new PropertyChangeCommand(elem,EParameterName.HADOOP_CUSTOM_JARS.getName(),StringUtils.trimToEmpty(customJars)));
      }
    }
  }
);
  subButton.setImage(ImageProvider.getImage(CorePlugin.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;
}