You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2021/03/19 06:41:46 UTC
[dubbo] branch 3.0-preview updated: fix reference cache (#7412)
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch 3.0-preview
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0-preview by this push:
new 6d1cfee fix reference cache (#7412)
6d1cfee is described below
commit 6d1cfee2172d6b613741632cdd99326db697b188
Author: Gong Dewei <ky...@qq.com>
AuthorDate: Fri Mar 19 14:40:32 2021 +0800
fix reference cache (#7412)
---
.../config/spring/DubboConfigInitializationPostProcessor.java | 8 --------
.../java/org/apache/dubbo/config/spring/ReferenceBeanManager.java | 8 ++++----
.../factory/annotation/ReferenceAnnotationBeanPostProcessor.java | 4 ++--
3 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/DubboConfigInitializationPostProcessor.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/DubboConfigInitializationPostProcessor.java
index c6578d2..d9c5181 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/DubboConfigInitializationPostProcessor.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/DubboConfigInitializationPostProcessor.java
@@ -75,14 +75,6 @@ public class DubboConfigInitializationPostProcessor implements BeanPostProcessor
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
-// try {
-// if (bean instanceof ReferenceBean) {
-// ReferenceBean referenceBean = (ReferenceBean) bean;
-// referenceBeanManager.addReference(referenceBean);
-// }
-// } catch (Exception e) {
-// throw new BeanInitializationException("Initialization reference bean failed", e);
-// }
return bean;
}
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ReferenceBeanManager.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ReferenceBeanManager.java
index 81afe4d..46be2e5 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ReferenceBeanManager.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ReferenceBeanManager.java
@@ -94,13 +94,13 @@ public class ReferenceBeanManager implements ApplicationContextAware {
* @throws Exception
*/
public void prepareReferenceBeans() throws Exception {
- for (ReferenceBean referenceBean : getReferences()) {
- initReferenceBean(referenceBean);
- }
-
// prepare all reference beans
Map<String, ReferenceBean> referenceBeanMap = applicationContext.getBeansOfType(ReferenceBean.class, true, false);
for (ReferenceBean referenceBean : referenceBeanMap.values()) {
+ addReference(referenceBean);
+ }
+
+ for (ReferenceBean referenceBean : getReferences()) {
initReferenceBean(referenceBean);
}
initialized = true;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java
index 2379f54..e6a9715 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java
@@ -252,8 +252,8 @@ public class ReferenceAnnotationBeanPostProcessor extends AbstractAnnotationBean
beanDefinitionRegistry.registerBeanDefinition(referenceBeanName, beanDefinition);
getBeanFactory().registerSingleton(referenceBeanName, referenceBean);
-
- //referenceBeanManager.addReference(referenceBean);
+ //cache reference bean, avoid re-inject same element after prepare reference bean
+ referenceBeanManager.addReference(referenceBean);
} catch (Exception e) {
throw new Exception("Create dubbo reference bean failed", e);
}