Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningWebsocketServer.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/Attic/LearningWebsocketServer.java,v diff -u -r1.1.2.3 -r1.1.2.4 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningWebsocketServer.java 5 May 2016 08:09:28 -0000 1.1.2.3 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningWebsocketServer.java 3 Jun 2016 07:37:03 -0000 1.1.2.4 @@ -213,18 +213,21 @@ * The leader finished the activity. Non-leaders will have Finish button displayed. */ static void sendCloseRequest(Long toolSessionId) throws JSONException, IOException { - JSONObject responseJSON = new JSONObject(); - responseJSON.put("close", true); - String response = responseJSON.toString(); - Set sessionWebsockets = LearningWebsocketServer.websockets.get(toolSessionId); if (sessionWebsockets == null) { return; } // make a copy of the websocket collection so it does not get blocked while sending messages sessionWebsockets = new HashSet(sessionWebsockets); + + JSONObject responseJSON = new JSONObject(); + responseJSON.put("close", true); + String response = responseJSON.toString(); + for (Session websocket : sessionWebsockets) { - websocket.getBasicRemote().sendText(response); + if (websocket.isOpen()) { + websocket.getBasicRemote().sendText(response); + } } }