Ensure concurrent WebSocketSession wrapper is used

Issue: SPR-13326
master
Rossen Stoyanchev 9 years ago
parent 257cc63141
commit 7defbfc18b
  1. 5
      spring-websocket/src/main/java/org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.java

@ -309,9 +309,12 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
*/ */
@Override @Override
public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception { 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); SubProtocolHandler protocolHandler = findProtocolHandler(session);
protocolHandler.handleMessageFromClient(session, message, this.clientInboundChannel); protocolHandler.handleMessageFromClient(session, message, this.clientInboundChannel);
WebSocketSessionHolder holder = this.sessions.get(session.getId());
if (holder != null) { if (holder != null) {
holder.setHasHandledMessages(); holder.setHasHandledMessages();
} }

Loading…
Cancel
Save