Program: 118610
Project: 118610
Buggy source:
/** 
 * DOC hcw Comment method "checkRepository".
 * @param node
 * @param item
 * @param stack
 */
private void checkRepository(final Node node,Item item,CommandStack stack){
  final String updataComponentParamName=EParameterName.UPDATE_COMPONENTS.getName();
  final List<IElementParameter> repositoryParam=new ArrayList<IElementParameter>();
  for (  IElementParameter param : node.getElementParameters()) {
    if (param.getFieldType().equals(EParameterFieldType.SCHEMA_TYPE)) {
      String value=(String)param.getChildParameters().get(EParameterName.SCHEMA_TYPE.getName()).getValue();
      if (value.equals(EmfComponent.REPOSITORY)) {
        IElementParameter schema=param.getChildParameters().get(EParameterName.REPOSITORY_SCHEMA_TYPE.getName());
        if (schema != null && schema.getValue() != null) {
          String[] names=((String)schema.getValue()).split("String_Node_Str");
          if (names.length > 0) {
            if (names[0].equals(item.getProperty().getId())) {
              repositoryParam.add(schema);
            }
          }
        }
      }
    }
 else     if (param.getFieldType().equals(EParameterFieldType.PROPERTY_TYPE)) {
      Object value=param.getChildParameters().get(EParameterName.PROPERTY_TYPE.getName()).getValue();
      if (value.equals(EmfComponent.REPOSITORY)) {
        IElementParameter property=param.getChildParameters().get(EParameterName.REPOSITORY_PROPERTY_TYPE.getName());
        if (property != null && property.getValue() != null) {
          if (property.getValue().equals(item.getProperty().getId())) {
            repositoryParam.add(property);
          }
        }
      }
    }
  }
  if (repositoryParam.isEmpty()) {
    return;
  }
  stack.execute(new Command(){
    @Override public void execute(){
      node.setPropertyValue(updataComponentParamName,new Boolean(true));
      for (      IElementParameter param : repositoryParam) {
        param.setListItemsDisplayName(new String[0]);
        param.setListItemsValue(new String[0]);
      }
    }
  }
);
}

Fixed version (ground truth):
/** 
 * DOC hcw Comment method "checkRepository".
 * @param node
 * @param item
 * @param stack
 */
private void checkRepository(final Node node,Item item,CommandStack stack){
  final String updataComponentParamName=EParameterName.UPDATE_COMPONENTS.getName();
  final List<IElementParameter> repositoryParam=new ArrayList<IElementParameter>();
  for (  IElementParameter param : node.getElementParameters()) {
    if (param.getFieldType().equals(EParameterFieldType.SCHEMA_TYPE) || param.getFieldType().equals(EParameterFieldType.SCHEMA_REFERENCE)) {
      String value=(String)param.getChildParameters().get(EParameterName.SCHEMA_TYPE.getName()).getValue();
      if (value.equals(EmfComponent.REPOSITORY)) {
        IElementParameter schema=param.getChildParameters().get(EParameterName.REPOSITORY_SCHEMA_TYPE.getName());
        if (schema != null && schema.getValue() != null) {
          String[] names=((String)schema.getValue()).split("String_Node_Str");
          if (names.length > 0) {
            if (names[0].equals(item.getProperty().getId())) {
              repositoryParam.add(schema);
            }
          }
        }
      }
    }
 else     if (param.getFieldType().equals(EParameterFieldType.PROPERTY_TYPE)) {
      Object value=param.getChildParameters().get(EParameterName.PROPERTY_TYPE.getName()).getValue();
      if (value.equals(EmfComponent.REPOSITORY)) {
        IElementParameter property=param.getChildParameters().get(EParameterName.REPOSITORY_PROPERTY_TYPE.getName());
        if (property != null && property.getValue() != null) {
          if (property.getValue().equals(item.getProperty().getId())) {
            repositoryParam.add(property);
          }
        }
      }
    }
  }
  if (repositoryParam.isEmpty()) {
    return;
  }
  stack.execute(new Command(){
    @Override public void execute(){
      node.setPropertyValue(updataComponentParamName,new Boolean(true));
      for (      IElementParameter param : repositoryParam) {
        param.setListItemsDisplayName(new String[0]);
        param.setListItemsValue(new String[0]);
      }
    }
  }
);
}