We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
描述bug 在apollo-client 模块里面,SpringValueDefinitionProcessor 中有如下代码块:
SpringValueDefinitionProcessor
public static Multimap<String, SpringValueDefinition> getBeanName2SpringValueDefinitions(BeanDefinitionRegistry registry) { Multimap<String, SpringValueDefinition> springValueDefinitions = beanName2SpringValueDefinitions.get(registry); if (springValueDefinitions == null) { springValueDefinitions = LinkedListMultimap.create(); } return springValueDefinitions; }
这段代码我怎么看着有点迷糊,当不存在时,就新那一个返回出去,但是这个新建的对象并没有保存下来,也就是说当我多次调用时,返回的是不同的实例对象,那这段代码有什么意义呢?
其次没有加锁
对于目前来说似乎没有问题,但看样子是因为这里的调用总是不会返回null,因为SpringValueDefinitionProcessor 是BeanDefinitionRegistryPostProcessor 而SpringValueProcessor 是BeanFactoryPostProcessor, BeanDefinitionRegistryPostProcessor 的运行优先级比BeanFactoryPostProcessor 高,所以在SpringValueDefinitionProcessor 已经初始化了,所以在SpringValueProcessor 中调用SpringValueDefinitionProcessor.getBeanName2SpringValueDefinitions(..) 这个方法的时候总是存在值了。
BeanDefinitionRegistryPostProcessor
SpringValueProcessor
BeanFactoryPostProcessor
SpringValueDefinitionProcessor.getBeanName2SpringValueDefinitions(..)
单看这一个方法它的逻辑是有问题的,但从spring 的整体机制来讲这个BUG 不会触发。
简洁明了地描述一下bug 。
复现 。
通过如下步骤可以复现:
期望
简介明了地描述你希望正常情况下应该发生什么
截图
如果可以,附上截图来描述你的问题
The text was updated successfully, but these errors were encountered:
当不存在时,就新那一个返回出去,但是这个新建的对象并没有保存下来,也就是说当我多次调用时,返回的是不同的实例对象
这确实是个 bug
这个方法是 postProcessBeanFactory 调用的,不会有并发问题,所以不需要加锁
Sorry, something went wrong.
Successfully merging a pull request may close this issue.
描述bug
在apollo-client 模块里面,
SpringValueDefinitionProcessor
中有如下代码块:这段代码我怎么看着有点迷糊,当不存在时,就新那一个返回出去,但是这个新建的对象并没有保存下来,也就是说当我多次调用时,返回的是不同的实例对象,那这段代码有什么意义呢?
其次没有加锁
对于目前来说似乎没有问题,但看样子是因为这里的调用总是不会返回null,因为
SpringValueDefinitionProcessor
是BeanDefinitionRegistryPostProcessor
而SpringValueProcessor
是BeanFactoryPostProcessor
,BeanDefinitionRegistryPostProcessor
的运行优先级比BeanFactoryPostProcessor
高,所以在SpringValueDefinitionProcessor
已经初始化了,所以在SpringValueProcessor
中调用SpringValueDefinitionProcessor.getBeanName2SpringValueDefinitions(..)
这个方法的时候总是存在值了。单看这一个方法它的逻辑是有问题的,但从spring 的整体机制来讲这个BUG 不会触发。
简洁明了地描述一下bug
。
复现
。
通过如下步骤可以复现:
期望
简介明了地描述你希望正常情况下应该发生什么
截图
如果可以,附上截图来描述你的问题
额外的细节和日志
The text was updated successfully, but these errors were encountered: