You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by cr...@apache.org on 2019/02/21 05:48:56 UTC

[incubator-dubbo] branch master updated: [Dubbo-3106]Make getRegistered return unmodifiable collection. #3106 (#3425)

This is an automated email from the ASF dual-hosted git repository.

crazyhzm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
     new a40c2f8  [Dubbo-3106]Make getRegistered return unmodifiable collection. #3106 (#3425)
a40c2f8 is described below

commit a40c2f851c1fd7119e2803d5b93062e3f3b456dc
Author: kezhenxu94 <ke...@163.com>
AuthorDate: Thu Feb 21 13:48:31 2019 +0800

    [Dubbo-3106]Make getRegistered return unmodifiable collection. #3106 (#3425)
    
    * make getRegistered return unmodifiable collection. #3106
    
    * fix ci failure
---
 .../org/apache/dubbo/registry/support/AbstractRegistry.java  |  7 ++++---
 .../apache/dubbo/registry/support/AbstractRegistryTest.java  | 12 ++++++++----
 .../dubbo/registry/multicast/MulticastRegistryTest.java      |  4 +++-
 3 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/AbstractRegistry.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/AbstractRegistry.java
index 9230951..31cdbf8 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/AbstractRegistry.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/AbstractRegistry.java
@@ -37,6 +37,7 @@ import java.io.RandomAccessFile;
 import java.nio.channels.FileChannel;
 import java.nio.channels.FileLock;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -118,15 +119,15 @@ public abstract class AbstractRegistry implements Registry {
     }
 
     public Set<URL> getRegistered() {
-        return registered;
+        return Collections.unmodifiableSet(registered);
     }
 
     public Map<URL, Set<NotifyListener>> getSubscribed() {
-        return subscribed;
+        return Collections.unmodifiableMap(subscribed);
     }
 
     public Map<URL, Map<String, List<URL>>> getNotified() {
-        return notified;
+        return Collections.unmodifiableMap(notified);
     }
 
     public File getCacheFile() {
diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/support/AbstractRegistryTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/support/AbstractRegistryTest.java
index a74e89f..23364d0 100644
--- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/support/AbstractRegistryTest.java
+++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/support/AbstractRegistryTest.java
@@ -96,7 +96,9 @@ public class AbstractRegistryTest {
         abstractRegistry.register(mockUrl);
         assert abstractRegistry.getRegistered().contains(mockUrl);
         //test multiple urls
-        abstractRegistry.getRegistered().clear();
+        for (URL url : abstractRegistry.getRegistered()) {
+            abstractRegistry.unregister(url);
+        }
         List<URL> urlList = getList();
         for (URL url : urlList) {
             abstractRegistry.register(url);
@@ -122,14 +124,16 @@ public class AbstractRegistryTest {
     public void testUnregister() throws Exception {
         //test one unregister
         URL url = new URL("dubbo", "192.168.0.1", 2200);
-        abstractRegistry.getRegistered().add(url);
+        abstractRegistry.register(url);
         abstractRegistry.unregister(url);
         MatcherAssert.assertThat(false, Matchers.equalTo(abstractRegistry.getRegistered().contains(url)));
         //test multiple unregisters
-        abstractRegistry.getRegistered().clear();
+        for (URL u : abstractRegistry.getRegistered()) {
+            abstractRegistry.unregister(u);
+        }
         List<URL> urlList = getList();
         for (URL urlSub : urlList) {
-            abstractRegistry.getRegistered().add(urlSub);
+            abstractRegistry.register(urlSub);
         }
         for (URL urlSub : urlList) {
             abstractRegistry.unregister(urlSub);
diff --git a/dubbo-registry/dubbo-registry-multicast/src/test/java/org/apache/dubbo/registry/multicast/MulticastRegistryTest.java b/dubbo-registry/dubbo-registry-multicast/src/test/java/org/apache/dubbo/registry/multicast/MulticastRegistryTest.java
index 93c59bc..76eece0 100644
--- a/dubbo-registry/dubbo-registry-multicast/src/test/java/org/apache/dubbo/registry/multicast/MulticastRegistryTest.java
+++ b/dubbo-registry/dubbo-registry-multicast/src/test/java/org/apache/dubbo/registry/multicast/MulticastRegistryTest.java
@@ -92,7 +92,9 @@ public class MulticastRegistryTest {
         Set<URL> registered;
         // clear first
         registered = registry.getRegistered();
-        registered.clear();
+        for (URL url : registered) {
+            registry.unregister(url);
+        }
 
         for (int i = 0; i < 2; i++) {
             registry.register(serviceUrl);