diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/socket/adapter/AbstractListenerWebSocketSession.java b/spring-webflux/src/main/java/org/springframework/web/reactive/socket/adapter/AbstractListenerWebSocketSession.java index 8f8e530508a6..bb6ff6e57d5e 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/socket/adapter/AbstractListenerWebSocketSession.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/socket/adapter/AbstractListenerWebSocketSession.java @@ -33,6 +33,7 @@ import org.springframework.http.server.reactive.AbstractListenerWriteProcessor; import org.springframework.lang.Nullable; import org.springframework.util.Assert; +import org.springframework.util.StringUtils; import org.springframework.web.reactive.socket.CloseStatus; import org.springframework.web.reactive.socket.HandshakeInfo; import org.springframework.web.reactive.socket.WebSocketHandler; @@ -247,7 +248,12 @@ public void onError(Throwable ex) { if (this.handlerCompletionMono != null) { this.handlerCompletionMono.onError(ex); } - close(CloseStatus.SERVER_ERROR.withReason(ex.getMessage())); + if(!StringUtils.hasText(ex.getMessage())) { + close(CloseStatus.SERVER_ERROR); + } + else { + close(CloseStatus.SERVER_ERROR.withReason(ex.getMessage())); + } } @Override