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 33f237df8..43f1590fd 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 @@ -293,9 +293,12 @@ public class DubboServiceMetadataRepository { public void unexportURL(URL url) { String key = url.getServiceKey(); + // NPE issue : https://github.com/spring-cloud-incubator/spring-cloud-alibaba/issues/591 List<URL> urls = allExportedURLs.get(key); - urls.remove(url); - this.allExportedURLs.addAll(key, urls); + if (!isEmpty(urls)) { + urls.remove(url); + allExportedURLs.addAll(key, urls); + } } /**