This is an automated email from the ASF dual-hosted git repository.

kylixs pushed a commit to branch 3.0-multi-instances
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit 8502691b6e3df5e58f5d7742e6a56663a46bf464
Author: gongdewei <[email protected]>
AuthorDate: Tue Aug 31 14:51:21 2021 +0800

    Fix scope model NPE
---
 .../main/java/org/apache/dubbo/rpc/model/ConsumerModel.java  |  5 ++---
 .../main/java/org/apache/dubbo/rpc/model/ProviderModel.java  |  5 ++---
 .../main/java/org/apache/dubbo/rpc/model/ServiceModel.java   | 12 ++++--------
 .../java/org/apache/dubbo/rpc/model/ServiceRepository.java   |  4 ++--
 .../main/java/org/apache/dubbo/config/ReferenceConfig.java   |  2 +-
 .../src/main/java/org/apache/dubbo/config/ServiceConfig.java |  1 -
 6 files changed, 11 insertions(+), 18 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ConsumerModel.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ConsumerModel.java
index 701a228..f6df44d 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ConsumerModel.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ConsumerModel.java
@@ -52,7 +52,7 @@ public class ConsumerModel extends ServiceModel {
                          ReferenceConfigBase<?> referenceConfig,
                          Map<String, AsyncMethodInfo> methodConfigs) {
 
-        super(proxyObject, serviceKey, serviceModel, 
referenceConfig.getScopeModel(), referenceConfig);
+        super(proxyObject, serviceKey, serviceModel, referenceConfig);
         Assert.notEmptyString(serviceKey, "Service name can't be null or 
blank");
 
         this.methodConfigs = methodConfigs == null ? new HashMap<>() : 
methodConfigs;
@@ -63,10 +63,9 @@ public class ConsumerModel extends ServiceModel {
                          ServiceDescriptor serviceModel,
                          ReferenceConfigBase<?> referenceConfig,
                          ServiceMetadata metadata,
-                         ModuleModel moduleModel,
                          Map<String, AsyncMethodInfo> methodConfigs) {
 
-        super(proxyObject, serviceKey, serviceModel, moduleModel, 
referenceConfig, metadata);
+        super(proxyObject, serviceKey, serviceModel, referenceConfig, 
metadata);
         Assert.notEmptyString(serviceKey, "Service name can't be null or 
blank");
 
         this.methodConfigs = methodConfigs == null ? new HashMap<>() : 
methodConfigs;
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java
index 9b0d25b..2aab894 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java
@@ -38,7 +38,7 @@ public class ProviderModel extends ServiceModel {
                          Object serviceInstance,
                          ServiceDescriptor serviceModel,
                          ServiceConfigBase<?> serviceConfig) {
-        super(serviceInstance, serviceKey, serviceModel, 
serviceConfig.getScopeModel(), serviceConfig);
+        super(serviceInstance, serviceKey, serviceModel, serviceConfig);
         if (null == serviceInstance) {
             throw new IllegalArgumentException("Service[" + serviceKey + 
"]Target is NULL.");
         }
@@ -49,10 +49,9 @@ public class ProviderModel extends ServiceModel {
     public ProviderModel(String serviceKey,
                          Object serviceInstance,
                          ServiceDescriptor serviceModel,
-                         ModuleModel moduleModel,
                          ServiceConfigBase<?> serviceConfig,
                          ServiceMetadata serviceMetadata) {
-        super(serviceInstance, serviceKey, serviceModel, moduleModel, 
serviceConfig, serviceMetadata);
+        super(serviceInstance, serviceKey, serviceModel, serviceConfig, 
serviceMetadata);
         if (null == serviceInstance) {
             throw new IllegalArgumentException("Service[" + serviceKey + 
"]Target is NULL.");
         }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceModel.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceModel.java
index c70d43f..92c6fdc 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceModel.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceModel.java
@@ -33,19 +33,15 @@ public class ServiceModel {
 
     private ServiceMetadata serviceMetadata;
 
-    public ServiceModel(Object proxyObject, String serviceKey, 
ServiceDescriptor serviceModel, ModuleModel moduleModel, 
AbstractInterfaceConfig config) {
-        this.proxyObject = proxyObject;
-        this.serviceKey = serviceKey;
-        this.serviceModel = serviceModel;
-        this.moduleModel = moduleModel;
-        this.config = config;
+    public ServiceModel(Object proxyObject, String serviceKey, 
ServiceDescriptor serviceModel, AbstractInterfaceConfig config) {
+        this(proxyObject, serviceKey, serviceModel, config, null);
     }
 
-    public ServiceModel(Object proxyObject, String serviceKey, 
ServiceDescriptor serviceModel, ModuleModel moduleModel, 
AbstractInterfaceConfig config, ServiceMetadata serviceMetadata) {
+    public ServiceModel(Object proxyObject, String serviceKey, 
ServiceDescriptor serviceModel, AbstractInterfaceConfig config, ServiceMetadata 
serviceMetadata) {
         this.proxyObject = proxyObject;
         this.serviceKey = serviceKey;
         this.serviceModel = serviceModel;
-        this.moduleModel = moduleModel;
+        this.moduleModel = ScopeModelUtil.getModuleModel(config != null ? 
config.getScopeModel() : null);
         this.config = config;
         this.serviceMetadata = serviceMetadata;
     }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceRepository.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceRepository.java
index 8d605f8..c136593 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceRepository.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceRepository.java
@@ -111,7 +111,7 @@ public class ServiceRepository extends LifecycleAdapter 
implements FrameworkExt,
                                  Object proxy,
                                  ServiceMetadata serviceMetadata) {
         ConsumerModel consumerModel = new 
ConsumerModel(serviceMetadata.getServiceKey(), proxy, serviceDescriptor, rc,
-            serviceMetadata, rc.getScopeModel(), null);
+            serviceMetadata, null);
         consumers.putIfAbsent(serviceKey, consumerModel);
     }
 
@@ -132,7 +132,7 @@ public class ServiceRepository extends LifecycleAdapter 
implements FrameworkExt,
                                  ServiceDescriptor serviceModel,
                                  ServiceConfigBase<?> serviceConfig,
                                  ServiceMetadata serviceMetadata) {
-        ProviderModel providerModel = new ProviderModel(serviceKey, 
serviceInstance, serviceModel, serviceConfig.getScopeModel(),
+        ProviderModel providerModel = new ProviderModel(serviceKey, 
serviceInstance, serviceModel,
             serviceConfig, serviceMetadata);
         providers.putIfAbsent(serviceKey, providerModel);
         providersWithoutGroup.putIfAbsent(keyWithoutGroup(serviceKey), 
providerModel);
diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
index 9359e38..171745f 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
@@ -260,7 +260,7 @@ public class ReferenceConfig<T> extends 
ReferenceConfigBase<T> {
         ServiceRepository repository = 
getApplicationModel().getApplicationServiceRepository();
         ServiceDescriptor serviceDescriptor = 
repository.registerService(interfaceClass);
         consumerModel = new ConsumerModel(serviceMetadata.getServiceKey(), 
proxy, serviceDescriptor, this,
-            serviceMetadata, getScopeModel(), createAsyncMethodInfo());
+            serviceMetadata, createAsyncMethodInfo());
 
         repository.registerConsumer(consumerModel);
 
diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
index 0d7cc3c..8423ef0 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
@@ -361,7 +361,6 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
         providerModel = new ProviderModel(getUniqueServiceName(),
             ref,
             serviceDescriptor,
-            getScopeModel(),
             this,
             serviceMetadata);
 

Reply via email to