diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/messaging/StompSubProtocolHandler.java b/spring-websocket/src/main/java/org/springframework/web/socket/messaging/StompSubProtocolHandler.java index 0034f2d105b..0f6b388ca63 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/messaging/StompSubProtocolHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/messaging/StompSubProtocolHandler.java @@ -174,7 +174,11 @@ public class StompSubProtocolHandler implements SubProtocolHandler { try { message = MessageBuilder.withPayload(message.getPayload()).setHeaders(headers).build(); byte[] bytes = this.stompEncoder.encode((Message) message); - session.sendMessage(new TextMessage(new String(bytes, Charset.forName("UTF-8")))); + + synchronized(session) { + session.sendMessage(new TextMessage(new String(bytes, Charset.forName("UTF-8")))); + } + } catch (Throwable t) { sendErrorMessage(session, t);