Bugfix: store entry is not removed properly after device disconnected

Change-Id: I4c967a1d98208b5d3eee0e7b00dfd4ed2fddde01
diff --git a/src/main/java/org/onosproject/segmentrouting/XConnectHandler.java b/src/main/java/org/onosproject/segmentrouting/XConnectHandler.java
index 0adf7eb..c3f737f 100644
--- a/src/main/java/org/onosproject/segmentrouting/XConnectHandler.java
+++ b/src/main/java/org/onosproject/segmentrouting/XConnectHandler.java
@@ -44,12 +44,9 @@
 import org.onosproject.store.service.ConsistentMap;
 import org.onosproject.store.service.Serializer;
 import org.onosproject.store.service.StorageService;
-import org.onosproject.store.service.Versioned;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Iterator;
-import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
@@ -398,14 +395,12 @@
      * @param deviceId device ID
      */
     protected void removeDevice(DeviceId deviceId) {
-        Iterator<Map.Entry<XConnectStoreKey, Versioned<NextObjective>>> itNextObj =
-                xConnectNextObjStore.entrySet().iterator();
-        while (itNextObj.hasNext()) {
-            Map.Entry<XConnectStoreKey, Versioned<NextObjective>> entry = itNextObj.next();
-            if (entry.getKey().deviceId().equals(deviceId)) {
-                itNextObj.remove();
-            }
-        }
+        xConnectNextObjStore.entrySet().stream()
+                .filter(entry -> entry.getKey().deviceId().equals(deviceId))
+                .forEach(entry -> {
+                    xConnectNextObjStore.remove(entry.getKey());
+                });
+        log.debug("{} is removed from xConnectNextObjStore", deviceId);
     }
 
     /**