Cleaning up unnecessary synchronization in UI web socket servlet.

Change-Id: Ifcce1dae1ebc8566634ce50d530b133416ec6b8b
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocketServlet.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocketServlet.java
index da2c4e9..2db0c61 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocketServlet.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocketServlet.java
@@ -16,6 +16,7 @@
 package org.onosproject.ui.impl;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
 import org.eclipse.jetty.websocket.WebSocket;
 import org.eclipse.jetty.websocket.WebSocketServlet;
@@ -25,7 +26,6 @@
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import java.security.Principal;
-import java.util.Iterator;
 import java.util.Set;
 import java.util.Timer;
 import java.util.TimerTask;
@@ -82,9 +82,7 @@
         String userName = p != null ? p.getName() : FAKE_USERNAME;
 
         UiWebSocket socket = new UiWebSocket(directory, userName);
-        synchronized (sockets) {
-            sockets.add(socket);
-        }
+        sockets.add(socket);
         return socket;
     }
 
@@ -125,16 +123,11 @@
     private class Pruner extends TimerTask {
         @Override
         public void run() {
-            synchronized (sockets) {
-                Iterator<UiWebSocket> it = sockets.iterator();
-                while (it.hasNext()) {
-                    UiWebSocket socket = it.next();
-                    if (socket.isIdle()) {
-                        it.remove();
-                        socket.close();
-                    }
-                }
-            }
+            ImmutableSet<UiWebSocket> set = ImmutableSet.copyOf(sockets);
+            set.stream().filter(UiWebSocket::isIdle).forEach(s -> {
+                sockets.remove(s);
+                s.close();
+            });
         }
     }
 }