From fa636f3055ea72f903d82b5463912f52e126b62c Mon Sep 17 00:00:00 2001 From: "Owen.Cai" <89424516@qq.com> Date: Thu, 4 Mar 2021 17:28:26 +0800 Subject: [PATCH] fix generic interface metadata publish log error (#6746) (cherry picked from commit eef6b450fc69f6670d19c050719a6766343a1729) --- .../InMemoryWritableMetadataService.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/store/InMemoryWritableMetadataService.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/store/InMemoryWritableMetadataService.java index 8d62ae16a85..d7aaed98be8 100644 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/store/InMemoryWritableMetadataService.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/store/InMemoryWritableMetadataService.java @@ -133,17 +133,18 @@ public boolean unsubscribeURL(URL url) { @Override public void publishServiceDefinition(URL providerUrl) { try { - String interfaceName = providerUrl.getParameter(INTERFACE_KEY); - if (StringUtils.isNotEmpty(interfaceName) - && !ProtocolUtils.isGeneric(providerUrl.getParameter(GENERIC_KEY))) { - Class interfaceClass = Class.forName(interfaceName); - ServiceDefinition serviceDefinition = ServiceDefinitionBuilder.build(interfaceClass); - Gson gson = new Gson(); - String data = gson.toJson(serviceDefinition); - serviceDefinitions.put(providerUrl.getServiceKey(), data); - return; + if(!ProtocolUtils.isGeneric(providerUrl.getParameter(GENERIC_KEY))){ + String interfaceName = providerUrl.getParameter(INTERFACE_KEY); + if (StringUtils.isNotEmpty(interfaceName)) { + Class interfaceClass = Class.forName(interfaceName); + ServiceDefinition serviceDefinition = ServiceDefinitionBuilder.build(interfaceClass); + Gson gson = new Gson(); + String data = gson.toJson(serviceDefinition); + serviceDefinitions.put(providerUrl.getServiceKey(), data); + return; + } + logger.error("publishProvider interfaceName is empty . providerUrl: " + providerUrl.toFullString()); } - logger.error("publishProvider interfaceName is empty . providerUrl: " + providerUrl.toFullString()); } catch (ClassNotFoundException e) { //ignore error logger.error("publishProvider getServiceDescriptor error. providerUrl: " + providerUrl.toFullString(), e);