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);
+        }
     }
 
     /**