Synchronize Multimap access.

- ONOS-2626

Change-Id: I730b310e67ab858999a16565b05c2904d9d9481c
diff --git a/core/store/dist/src/main/java/org/onosproject/store/host/impl/ECHostStore.java b/core/store/dist/src/main/java/org/onosproject/store/host/impl/ECHostStore.java
index 4d3cc6a..f9c9689 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/host/impl/ECHostStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/host/impl/ECHostStore.java
@@ -68,7 +68,6 @@
 import org.slf4j.Logger;
 
 import com.google.common.collect.HashMultimap;
-import com.google.common.collect.ImmutableMultimap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Multimaps;
 import com.google.common.collect.SetMultimap;
@@ -258,17 +257,23 @@
 
     @Override
     public Set<Host> getConnectedHosts(ConnectPoint connectPoint) {
-        return ImmutableSet.copyOf(locations.get(connectPoint));
+        synchronized (locations) {
+            return ImmutableSet.copyOf(locations.get(connectPoint));
+        }
     }
 
     @Override
     public Set<Host> getConnectedHosts(DeviceId deviceId) {
-        return ImmutableMultimap.copyOf(locations)
-                .entries()
-                .stream()
-                .filter(entry -> entry.getKey().deviceId().equals(deviceId))
-                .map(entry -> entry.getValue())
-                .collect(Collectors.toSet());
+        Set<Host> filtered;
+        synchronized (locations) {
+            filtered = locations
+                    .entries()
+                    .stream()
+                    .filter(entry -> entry.getKey().deviceId().equals(deviceId))
+                    .map(entry -> entry.getValue())
+                    .collect(Collectors.toSet());
+        }
+        return ImmutableSet.copyOf(filtered);
     }
 
     private Set<Host> filter(Collection<DefaultHost> collection, Predicate<DefaultHost> predicate) {