From b17d6bf945a3c4c5aadd8407fb27dd5afca68b76 Mon Sep 17 00:00:00 2001 From: mercyblitz Date: Mon, 15 Apr 2019 22:14:07 +0800 Subject: [PATCH] Polish spring-cloud-incubator/spring-cloud-alibaba#556 : NPE should be avoid When ServiceRestMetadata can't be found --- .../repository/DubboServiceMetadataRepository.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/spring-cloud-alibaba-dubbo/src/main/java/org/springframework/cloud/alibaba/dubbo/metadata/repository/DubboServiceMetadataRepository.java b/spring-cloud-alibaba-dubbo/src/main/java/org/springframework/cloud/alibaba/dubbo/metadata/repository/DubboServiceMetadataRepository.java index 052dfa63..a1205b58 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/org/springframework/cloud/alibaba/dubbo/metadata/repository/DubboServiceMetadataRepository.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/org/springframework/cloud/alibaba/dubbo/metadata/repository/DubboServiceMetadataRepository.java @@ -37,6 +37,7 @@ import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.http.HttpRequest; import org.springframework.stereotype.Repository; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import javax.annotation.PostConstruct; import java.util.Collection; @@ -260,8 +261,10 @@ public class DubboServiceMetadataRepository { Set metadata = Collections.emptySet(); try { String serviceRestMetadataJsonConfig = dubboMetadataService.getServiceRestMetadata(); - metadata = objectMapper.readValue(serviceRestMetadataJsonConfig, - TypeFactory.defaultInstance().constructCollectionType(LinkedHashSet.class, ServiceRestMetadata.class)); + if(StringUtils.hasText(serviceRestMetadataJsonConfig)) { + metadata = objectMapper.readValue(serviceRestMetadataJsonConfig, + TypeFactory.defaultInstance().constructCollectionType(LinkedHashSet.class, ServiceRestMetadata.class)); + } } catch (Exception e) { if (logger.isErrorEnabled()) { logger.error(e.getMessage(), e);