Skip to content

Commit 0dcc5c0

Browse files
committed
Adjust SockJS use of ServerHttpResponse close vs flush
1 parent 13ce20b commit 0dcc5c0

File tree

3 files changed

+18
-19
lines changed

3 files changed

+18
-19
lines changed

spring-websocket/src/main/java/org/springframework/web/socket/server/support/WebSocketHttpRequestHandler.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public class WebSocketHttpRequestHandler implements HttpRequestHandler {
6060

6161
private final HandshakeHandler handshakeHandler;
6262

63-
private final WebSocketHandler webSocketHandler;
63+
private final WebSocketHandler wsHandler;
6464

6565
private final List<HandshakeInterceptor> interceptors = new ArrayList<HandshakeInterceptor>();
6666

@@ -72,7 +72,7 @@ public WebSocketHttpRequestHandler(WebSocketHandler webSocketHandler) {
7272
public WebSocketHttpRequestHandler( WebSocketHandler webSocketHandler, HandshakeHandler handshakeHandler) {
7373
Assert.notNull(webSocketHandler, "webSocketHandler must not be null");
7474
Assert.notNull(handshakeHandler, "handshakeHandler must not be null");
75-
this.webSocketHandler = decorateWebSocketHandler(webSocketHandler);
75+
this.wsHandler = decorateWebSocketHandler(webSocketHandler);
7676
this.handshakeHandler = handshakeHandler;
7777
}
7878

@@ -100,9 +100,9 @@ public List<HandshakeInterceptor> getHandshakeInterceptors() {
100100
* <p>By default {@link ExceptionWebSocketHandlerDecorator} and
101101
* {@link LoggingWebSocketHandlerDecorator} are applied are added.
102102
*/
103-
protected WebSocketHandler decorateWebSocketHandler(WebSocketHandler handler) {
104-
handler = new ExceptionWebSocketHandlerDecorator(handler);
105-
return new LoggingWebSocketHandlerDecorator(handler);
103+
protected WebSocketHandler decorateWebSocketHandler(WebSocketHandler wsHandler) {
104+
wsHandler = new ExceptionWebSocketHandlerDecorator(wsHandler);
105+
return new LoggingWebSocketHandlerDecorator(wsHandler);
106106
}
107107

108108
@Override
@@ -112,16 +112,17 @@ public void handleRequest(HttpServletRequest servletRequest, HttpServletResponse
112112
ServerHttpRequest request = new ServletServerHttpRequest(servletRequest);
113113
ServerHttpResponse response = new ServletServerHttpResponse(servletResponse);
114114

115-
HandshakeInterceptorChain chain = new HandshakeInterceptorChain(this.interceptors, this.webSocketHandler);
115+
HandshakeInterceptorChain chain = new HandshakeInterceptorChain(this.interceptors, this.wsHandler);
116116
HandshakeFailureException failure = null;
117117

118118
try {
119119
Map<String, Object> attributes = new HashMap<String, Object>();
120120
if (!chain.applyBeforeHandshake(request, response, attributes)) {
121121
return;
122122
}
123-
this.handshakeHandler.doHandshake(request, response, this.webSocketHandler, attributes);
123+
this.handshakeHandler.doHandshake(request, response, this.wsHandler, attributes);
124124
chain.applyAfterHandshake(request, response, null);
125+
response.close();
125126
}
126127
catch (HandshakeFailureException ex) {
127128
failure = ex;
@@ -134,7 +135,6 @@ public void handleRequest(HttpServletRequest servletRequest, HttpServletResponse
134135
chain.applyAfterHandshake(request, response, failure);
135136
throw failure;
136137
}
137-
response.flush();
138138
}
139139
}
140140

spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsHttpRequestHandler.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,19 @@ public class SockJsHttpRequestHandler implements HttpRequestHandler {
4343

4444
private final SockJsService sockJsService;
4545

46-
private final WebSocketHandler webSocketHandler;
46+
private final WebSocketHandler wsHandler;
4747

4848

4949
/**
5050
* Create a new {@link SockJsHttpRequestHandler}.
5151
* @param sockJsService the SockJS service
52-
* @param webSocketHandler the websocket handler
52+
* @param wsHandler the websocket handler
5353
*/
54-
public SockJsHttpRequestHandler(SockJsService sockJsService, WebSocketHandler webSocketHandler) {
54+
public SockJsHttpRequestHandler(SockJsService sockJsService, WebSocketHandler wsHandler) {
5555
Assert.notNull(sockJsService, "sockJsService must not be null");
56-
Assert.notNull(webSocketHandler, "webSocketHandler must not be null");
56+
Assert.notNull(wsHandler, "webSocketHandler must not be null");
5757
this.sockJsService = sockJsService;
58-
this.webSocketHandler = decorateWebSocketHandler(webSocketHandler);
58+
this.wsHandler = decorateWebSocketHandler(wsHandler);
5959
}
6060

6161

@@ -65,9 +65,9 @@ public SockJsHttpRequestHandler(SockJsService sockJsService, WebSocketHandler we
6565
* <p>By default {@link ExceptionWebSocketHandlerDecorator} and
6666
* {@link LoggingWebSocketHandlerDecorator} are applied are added.
6767
*/
68-
protected WebSocketHandler decorateWebSocketHandler(WebSocketHandler handler) {
69-
handler = new ExceptionWebSocketHandlerDecorator(handler);
70-
return new LoggingWebSocketHandlerDecorator(handler);
68+
protected WebSocketHandler decorateWebSocketHandler(WebSocketHandler wsHandler) {
69+
wsHandler = new ExceptionWebSocketHandlerDecorator(wsHandler);
70+
return new LoggingWebSocketHandlerDecorator(wsHandler);
7171
}
7272

7373
@Override
@@ -78,7 +78,7 @@ public void handleRequest(HttpServletRequest servletRequest, HttpServletResponse
7878
ServerHttpResponse response = new ServletServerHttpResponse(servletResponse);
7979

8080
try {
81-
this.sockJsService.handleRequest(request, response, this.webSocketHandler);
81+
this.sockJsService.handleRequest(request, response, this.wsHandler);
8282
}
8383
catch (Throwable t) {
8484
throw new SockJsException("Uncaught failure in SockJS request, uri=" + request.getURI(), t);

spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/AbstractSockJsService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,8 +320,7 @@ else if (sockJsPath.equals("/websocket")) {
320320
}
321321
handleTransportRequest(request, response, wsHandler, sessionId, transport);
322322
}
323-
324-
response.flush();
323+
response.close();
325324
}
326325
catch (IOException ex) {
327326
throw new SockJsException("Failed to write to the response", null, ex);

0 commit comments

Comments
 (0)