This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.0-multi-instances
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0-multi-instances by this
push:
new e29e19c Fix Configurator Listener in Singleton mode override issue
e29e19c is described below
commit e29e19cc9196652767bdea3ffce26ed3bc2c843d
Author: Albumen Kevin <[email protected]>
AuthorDate: Sun Aug 29 23:20:40 2021 +0800
Fix Configurator Listener in Singleton mode override issue
---
.../apache/dubbo/registry/integration/RegistryProtocol.java | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
index 2b1d8a8..f53096a 100644
---
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
+++
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
@@ -215,7 +215,7 @@ public class RegistryProtocol implements Protocol,
ScopeModelAware {
// subscription information to cover.
final URL overrideSubscribeUrl = getSubscribedOverrideUrl(providerUrl);
final OverrideListener overrideSubscribeListener = new
OverrideListener(overrideSubscribeUrl, originInvoker);
- overrideListeners.put(overrideSubscribeUrl, overrideSubscribeListener);
+ overrideListeners.put(registryUrl, overrideSubscribeListener);
providerUrl = overrideUrlWithConfig(providerUrl,
overrideSubscribeListener);
//export invoker
@@ -262,9 +262,7 @@ public class RegistryProtocol implements Protocol,
ScopeModelAware {
ProviderConfigurationListener providerConfigurationListener =
getProviderConfigurationListener(providerUrl);
providerUrl = providerConfigurationListener.overrideUrl(providerUrl);
- URL finalProviderUrl = providerUrl;
- ServiceConfigurationListener serviceConfigurationListener =
applicationModel.getBeanFactory().registerBeanIfAbsent(ServiceConfigurationListener.class,
- type -> new ServiceConfigurationListener(applicationModel,
finalProviderUrl, listener));
+ ServiceConfigurationListener serviceConfigurationListener = new
ServiceConfigurationListener(applicationModel, providerUrl, listener);
serviceConfigurationListeners.put(providerUrl.getServiceKey(),
serviceConfigurationListener);
return serviceConfigurationListener.overrideUrl(providerUrl);
}
@@ -832,13 +830,13 @@ public class RegistryProtocol implements Protocol,
ScopeModelAware {
logger.warn(t.getMessage(), t);
}
try {
- NotifyListener listener =
RegistryProtocol.this.overrideListeners.remove(subscribeUrl);
+ NotifyListener listener =
RegistryProtocol.this.overrideListeners.remove(registerUrl);
registry.unsubscribe(subscribeUrl, listener);
ApplicationModel applicationModel =
getApplicationModel(registerUrl.getScopeModel());
if
(applicationModel.getApplicationEnvironment().getConfiguration().convert(Boolean.class,
ENABLE_CONFIGURATION_LISTEN, true)) {
applicationModel.getExtensionLoader(GovernanceRuleRepository.class).getDefaultExtension()
.removeListener(subscribeUrl.getServiceKey() +
CONFIGURATORS_SUFFIX,
-
serviceConfigurationListeners.get(subscribeUrl.getServiceKey()));
+
serviceConfigurationListeners.remove(subscribeUrl.getServiceKey()));
}
} catch (Throwable t) {
logger.warn(t.getMessage(), t);