diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/session/AbstractSockJsSession.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/session/AbstractSockJsSession.java index 925f36b67fd..227d4b01d37 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/session/AbstractSockJsSession.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/session/AbstractSockJsSession.java @@ -355,8 +355,10 @@ public abstract class AbstractSockJsSession implements SockJsSession { } private boolean indicatesDisconnectedClient(Throwable ex) { - return ("Broken pipe".equalsIgnoreCase(NestedExceptionUtils.getMostSpecificCause(ex).getMessage()) || - DISCONNECTED_CLIENT_EXCEPTIONS.contains(ex.getClass().getSimpleName())); + String message = NestedExceptionUtils.getMostSpecificCause(ex).getMessage(); + message = (message != null ? message.toLowerCase() : ""); + String className = ex.getClass().getSimpleName(); + return (message.contains("broken pipe") || DISCONNECTED_CLIENT_EXCEPTIONS.contains(className)); }