Program: 162315
Project: 162315
Buggy source:
public void registerFeignClients(AnnotationMetadata metadata,BeanDefinitionRegistry registry){
  ClassPathScanningCandidateComponentProvider scanner=getScanner();
  scanner.setResourceLoader(this.resourceLoader);
  Set<String> basePackages;
  Map<String,Object> attrs=metadata.getAnnotationAttributes(EnableFeignClients.class.getName());
  AnnotationTypeFilter annotationTypeFilter=new AnnotationTypeFilter(FeignClient.class);
  final Class<?>[] clients=attrs == null ? null : (Class<?>[])attrs.get("String_Node_Str");
  if (clients == null || clients.length == 0) {
    scanner.addIncludeFilter(annotationTypeFilter);
    basePackages=getBasePackages(metadata);
  }
 else {
    final Set<String> clientClasses=new HashSet<>();
    basePackages=new HashSet<>();
    for (    Class<?> clazz : clients) {
      basePackages.add(ClassUtils.getPackageName(clazz));
      clientClasses.add(clazz.getCanonicalName());
    }
    AbstractClassTestingTypeFilter filter=new AbstractClassTestingTypeFilter(){
      @Override protected boolean match(      ClassMetadata metadata){
        String cleaned=metadata.getClassName().replaceAll("String_Node_Str","String_Node_Str");
        return clientClasses.contains(cleaned);
      }
    }
;
    scanner.addIncludeFilter(new AllTypeFilter(Arrays.asList(filter,annotationTypeFilter)));
  }
  for (  String basePackage : basePackages) {
    Set<BeanDefinition> candidateComponents=scanner.findCandidateComponents(basePackage);
    for (    BeanDefinition candidateComponent : candidateComponents) {
      if (candidateComponent instanceof AnnotatedBeanDefinition) {
        AnnotatedBeanDefinition beanDefinition=(AnnotatedBeanDefinition)candidateComponent;
        AnnotationMetadata annotationMetadata=beanDefinition.getMetadata();
        Assert.isTrue(annotationMetadata.isInterface(),"String_Node_Str");
        Map<String,Object> attributes=annotationMetadata.getAnnotationAttributes(FeignClient.class.getCanonicalName());
        attributes=AnnotationAttributes.fromMap(attributes);
        String name=getClientName(attributes);
        registerClientConfiguration(registry,name,attributes.get("String_Node_Str"));
        registerFeignClient(registry,annotationMetadata,attributes);
      }
    }
  }
}

Fixed version (ground truth):
public void registerFeignClients(AnnotationMetadata metadata,BeanDefinitionRegistry registry){
  ClassPathScanningCandidateComponentProvider scanner=getScanner();
  scanner.setResourceLoader(this.resourceLoader);
  Set<String> basePackages;
  Map<String,Object> attrs=metadata.getAnnotationAttributes(EnableFeignClients.class.getName());
  AnnotationTypeFilter annotationTypeFilter=new AnnotationTypeFilter(FeignClient.class);
  final Class<?>[] clients=attrs == null ? null : (Class<?>[])attrs.get("String_Node_Str");
  if (clients == null || clients.length == 0) {
    scanner.addIncludeFilter(annotationTypeFilter);
    basePackages=getBasePackages(metadata);
  }
 else {
    final Set<String> clientClasses=new HashSet<>();
    basePackages=new HashSet<>();
    for (    Class<?> clazz : clients) {
      basePackages.add(ClassUtils.getPackageName(clazz));
      clientClasses.add(clazz.getCanonicalName());
    }
    AbstractClassTestingTypeFilter filter=new AbstractClassTestingTypeFilter(){
      @Override protected boolean match(      ClassMetadata metadata){
        String cleaned=metadata.getClassName().replaceAll("String_Node_Str","String_Node_Str");
        return clientClasses.contains(cleaned);
      }
    }
;
    scanner.addIncludeFilter(new AllTypeFilter(Arrays.asList(filter,annotationTypeFilter)));
  }
  for (  String basePackage : basePackages) {
    Set<BeanDefinition> candidateComponents=scanner.findCandidateComponents(basePackage);
    for (    BeanDefinition candidateComponent : candidateComponents) {
      if (candidateComponent instanceof AnnotatedBeanDefinition) {
        AnnotatedBeanDefinition beanDefinition=(AnnotatedBeanDefinition)candidateComponent;
        AnnotationMetadata annotationMetadata=beanDefinition.getMetadata();
        Assert.isTrue(annotationMetadata.isInterface(),"String_Node_Str");
        Map<String,Object> attributes=annotationMetadata.getAnnotationAttributes(FeignClient.class.getCanonicalName());
        String name=getClientName(attributes);
        registerClientConfiguration(registry,name,attributes.get("String_Node_Str"));
        registerFeignClient(registry,annotationMetadata,attributes);
      }
    }
  }
}