Skip to content

Commit 2bbd0c9

Browse files
lachlan-robertspoutsma
authored andcommitted
PR spring-projects#32097 - changes to address reviews for websocket
Signed-off-by: Lachlan Roberts <[email protected]>
1 parent 582a663 commit 2bbd0c9

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

spring-web/src/testFixtures/java/org/springframework/web/testfixture/http/server/reactive/bootstrap/JettyCoreHttpServer.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import org.eclipse.jetty.io.ArrayByteBufferPool;
2222
import org.eclipse.jetty.server.Server;
2323
import org.eclipse.jetty.server.ServerConnector;
24-
import org.eclipse.jetty.websocket.server.WebSocketUpgradeHandler;
24+
import org.eclipse.jetty.websocket.server.ServerWebSocketContainer;
2525

2626
import org.springframework.http.server.reactive.JettyCoreHttpHandlerAdapter;
2727

@@ -51,9 +51,7 @@ protected void initServer() {
5151
this.jettyServer.addConnector(connector);
5252
this.jettyServer.setHandler(createHandlerAdapter());
5353

54-
// TODO: We don't actually want the upgrade handler but this will create the WebSocketContainer.
55-
// This requires a change in Jetty.
56-
WebSocketUpgradeHandler.from(jettyServer);
54+
ServerWebSocketContainer.ensure(jettyServer);
5755
}
5856

5957
private JettyCoreHttpHandlerAdapter createHandlerAdapter() {

spring-webflux/src/main/java/org/springframework/web/reactive/socket/adapter/JettyWebSocketSession.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,14 @@ public JettyWebSocketSession(Session session, HandshakeInfo info, DataBufferFact
8484
this.lock.lock();
8585
try {
8686
this.requested = Math.addExact(this.requested, n);
87+
if (this.requested < 0L) {
88+
this.requested = Long.MAX_VALUE;
89+
}
90+
8791
if (!this.awaitingMessage && this.requested > 0) {
88-
this.requested--;
92+
if (this.requested != Long.MAX_VALUE) {
93+
this.requested--;
94+
}
8995
this.awaitingMessage = true;
9096
demand = true;
9197
}
@@ -113,7 +119,9 @@ void handleMessage(WebSocketMessage message) {
113119
}
114120
this.awaitingMessage = false;
115121
if (this.requested > 0) {
116-
this.requested--;
122+
if (this.requested != Long.MAX_VALUE) {
123+
this.requested--;
124+
}
117125
this.awaitingMessage = true;
118126
demand = true;
119127
}

0 commit comments

Comments
 (0)