Thomas Vachuska

GUI -- Preventing UI web-socket from attempting to re-open when shutdown.

Change-Id: I4851542d20a3e20b085d42f1fa235909d42f05eb
...@@ -42,14 +42,18 @@ public class UiWebSocketServlet extends WebSocketServlet { ...@@ -42,14 +42,18 @@ public class UiWebSocketServlet extends WebSocketServlet {
42 private final Set<UiWebSocket> sockets = new HashSet<>(); 42 private final Set<UiWebSocket> sockets = new HashSet<>();
43 private final Timer timer = new Timer(); 43 private final Timer timer = new Timer();
44 private final TimerTask pruner = new Pruner(); 44 private final TimerTask pruner = new Pruner();
45 + private boolean isStopped = false;
45 46
46 /** 47 /**
47 * Closes all currently open UI web-sockets. 48 * Closes all currently open UI web-sockets.
48 */ 49 */
49 public static void closeAll() { 50 public static void closeAll() {
50 if (instance != null) { 51 if (instance != null) {
52 + instance.isStopped = true;
51 instance.sockets.forEach(UiWebSocket::close); 53 instance.sockets.forEach(UiWebSocket::close);
52 instance.sockets.clear(); 54 instance.sockets.clear();
55 + instance.pruner.cancel();
56 + instance.timer.cancel();
53 } 57 }
54 } 58 }
55 59
...@@ -62,6 +66,9 @@ public class UiWebSocketServlet extends WebSocketServlet { ...@@ -62,6 +66,9 @@ public class UiWebSocketServlet extends WebSocketServlet {
62 66
63 @Override 67 @Override
64 public WebSocket doWebSocketConnect(HttpServletRequest request, String protocol) { 68 public WebSocket doWebSocketConnect(HttpServletRequest request, String protocol) {
69 + if (isStopped) {
70 + return null;
71 + }
65 UiWebSocket socket = new UiWebSocket(directory); 72 UiWebSocket socket = new UiWebSocket(directory);
66 synchronized (sockets) { 73 synchronized (sockets) {
67 sockets.add(socket); 74 sockets.add(socket);
......