From 7defbfc18b5e43f1de271419ea37ace7a2984d43 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Thu, 13 Aug 2015 08:00:24 -0400 Subject: [PATCH] Ensure concurrent WebSocketSession wrapper is used Issue: SPR-13326 --- .../web/socket/messaging/SubProtocolWebSocketHandler.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.java b/spring-websocket/src/main/java/org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.java index 0545be849c..e5446696c6 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.java @@ -309,9 +309,12 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler, */ @Override public void handleMessage(WebSocketSession session, WebSocketMessage message) throws Exception { + WebSocketSessionHolder holder = this.sessions.get(session.getId()); + if (holder != null) { + session = holder.getSession(); + } SubProtocolHandler protocolHandler = findProtocolHandler(session); protocolHandler.handleMessageFromClient(session, message, this.clientInboundChannel); - WebSocketSessionHolder holder = this.sessions.get(session.getId()); if (holder != null) { holder.setHasHandledMessages(); }