Program: 18442
Project: 18442
Buggy source:
/** 
 * Need to be almost exactly as <code>bindClassPropertyMapping</code>.
 */
private void bindClassPropertyIdMapping(SearchableId searchableProp,ClassIdPropertyMapping classPropertyMapping,Class<?> clazz,Type type,AnnotatedElement annotatedElement) throws MappingException {
  bindConverter(classPropertyMapping,searchableProp.idConverter());
  classPropertyMapping.setBoost(searchableProp.boost());
  classPropertyMapping.setManagedId(AnnotationsBindingUtils.convert(searchableProp.managedId()));
  classPropertyMapping.setManagedIdIndex(AnnotationsBindingUtils.convert(searchableProp.managedIdIndex()));
  classPropertyMapping.setOverrideByName(searchableProp.override());
  SearchableMetaData metaData=annotatedElement.getAnnotation(SearchableMetaData.class);
  SearchableMetaDatas metaDatas=annotatedElement.getAnnotation(SearchableMetaDatas.class);
  if (StringUtils.hasLength(searchableProp.converter())) {
    classPropertyMapping.setManagedIdConverterName(searchableProp.converter());
  }
 else {
    classPropertyMapping.setManagedIdConverter(getConverter(clazz,type));
  }
  if (StringUtils.hasLength(searchableProp.name())) {
    ClassPropertyMetaDataMapping mdMapping=new ClassPropertyMetaDataMapping();
    String name=searchableProp.name();
    if (!StringUtils.hasLength(name)) {
      name=classPropertyMapping.getName();
    }
    mdMapping.setName(valueLookup.lookupMetaDataName(name));
    mdMapping.setPath(new StaticPropertyPath(mdMapping.getName()));
    mdMapping.setBoost(classPropertyMapping.getBoost());
    mdMapping.setAccessor(classPropertyMapping.getAccessor());
    mdMapping.setObjClass(classPropertyMapping.getObjClass());
    mdMapping.setPropertyName(classPropertyMapping.getPropertyName());
    bindConverter(mdMapping,searchableProp.converter(),clazz,type);
    mdMapping.setStore(AnnotationsBindingUtils.convert(searchableProp.store()));
    mdMapping.setIndex(AnnotationsBindingUtils.convert(searchableProp.index()));
    mdMapping.setTermVector(AnnotationsBindingUtils.convert(searchableProp.termVector()));
    mdMapping.setReverse(AnnotationsBindingUtils.convert(searchableProp.reverse()));
    handleFormat(mdMapping,name,searchableProp.format());
    if (StringUtils.hasLength(searchableProp.analyzer())) {
      mdMapping.setAnalyzer(searchableProp.analyzer());
    }
    mdMapping.setExcludeFromAll(searchableProp.excludeFromAll());
    classPropertyMapping.addMapping(mdMapping);
  }
  if (metaData != null) {
    bindMetaData(metaData,classPropertyMapping,clazz,type);
  }
  if (metaDatas != null) {
    for (    SearchableMetaData searchableMetaData : metaDatas.value()) {
      bindMetaData(searchableMetaData,classPropertyMapping,clazz,type);
    }
  }
}

Fixed version (ground truth):
/** 
 * Need to be almost exactly as <code>bindClassPropertyMapping</code>.
 */
private void bindClassPropertyIdMapping(SearchableId searchableProp,ClassIdPropertyMapping classPropertyMapping,Class<?> clazz,Type type,AnnotatedElement annotatedElement) throws MappingException {
  bindConverter(classPropertyMapping,searchableProp.idConverter());
  classPropertyMapping.setBoost(searchableProp.boost());
  classPropertyMapping.setManagedId(AnnotationsBindingUtils.convert(searchableProp.managedId()));
  classPropertyMapping.setManagedIdIndex(AnnotationsBindingUtils.convert(searchableProp.managedIdIndex()));
  classPropertyMapping.setOverrideByName(searchableProp.override());
  SearchableMetaData metaData=annotatedElement.getAnnotation(SearchableMetaData.class);
  SearchableMetaDatas metaDatas=annotatedElement.getAnnotation(SearchableMetaDatas.class);
  if (StringUtils.hasLength(searchableProp.converter())) {
    classPropertyMapping.setManagedIdConverterName(searchableProp.converter());
  }
 else {
    classPropertyMapping.setManagedIdConverter(getConverter(clazz,type));
  }
  if (StringUtils.hasLength(searchableProp.name())) {
    ClassPropertyMetaDataMapping mdMapping=new ClassPropertyMetaDataMapping();
    String name=searchableProp.name();
    if (!StringUtils.hasLength(name)) {
      name=classPropertyMapping.getName();
    }
    mdMapping.setName(valueLookup.lookupMetaDataName(name));
    mdMapping.setPath(new StaticPropertyPath(mdMapping.getName()));
    mdMapping.setBoost(classPropertyMapping.getBoost());
    mdMapping.setAccessor(classPropertyMapping.getAccessor());
    mdMapping.setPropertyName(classPropertyMapping.getPropertyName());
    bindConverter(mdMapping,searchableProp.converter(),clazz,type);
    mdMapping.setStore(AnnotationsBindingUtils.convert(searchableProp.store()));
    mdMapping.setIndex(AnnotationsBindingUtils.convert(searchableProp.index()));
    mdMapping.setTermVector(AnnotationsBindingUtils.convert(searchableProp.termVector()));
    mdMapping.setReverse(AnnotationsBindingUtils.convert(searchableProp.reverse()));
    handleFormat(mdMapping,name,searchableProp.format());
    if (StringUtils.hasLength(searchableProp.analyzer())) {
      mdMapping.setAnalyzer(searchableProp.analyzer());
    }
    mdMapping.setExcludeFromAll(searchableProp.excludeFromAll());
    classPropertyMapping.addMapping(mdMapping);
  }
  if (metaData != null) {
    bindMetaData(metaData,classPropertyMapping,clazz,type);
  }
  if (metaDatas != null) {
    for (    SearchableMetaData searchableMetaData : metaDatas.value()) {
      bindMetaData(searchableMetaData,classPropertyMapping,clazz,type);
    }
  }
}