From 33f9eadd6a2e2eceacdb78bb2432d1a788024512 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 6e80e7c0e12..8067dcf58d6 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 @@ -305,9 +305,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(); }