From 77de314ce1e3ea32bd2c82a2a9ea93eb5e2a703f Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Mon, 13 Jun 2016 23:18:32 +0200 Subject: [PATCH] Fixes #639 - ServerContainer stores WebSocket sessions twice. ServerContainer now delegates session storage to WebSocketServerFactory. --- .../websocket/jsr356/server/ServerContainer.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/ServerContainer.java b/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/ServerContainer.java index e8b10d044fe..c25350366d2 100644 --- a/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/ServerContainer.java +++ b/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/ServerContainer.java @@ -19,11 +19,14 @@ package org.eclipse.jetty.websocket.jsr356.server; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.concurrent.Executor; import javax.websocket.DeploymentException; import javax.websocket.Endpoint; +import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; import javax.websocket.server.ServerEndpointConfig; @@ -245,14 +248,18 @@ public class ServerContainer extends ClientContainer implements javax.websocket. @Override public void onSessionClosed(WebSocketSession session) { - super.onSessionClosed(session); webSocketServerFactory.onSessionClosed(session); } @Override public void onSessionOpened(WebSocketSession session) { - super.onSessionOpened(session); webSocketServerFactory.onSessionOpened(session); } + + @Override + public Set getOpenSessions() + { + return new HashSet<>(webSocketServerFactory.getBeans(Session.class)); + } }