Skip to content

Commit 7387bc9

Browse files
committed
[java] Ensure Java 11 client can send multiple websocket requests. Collect all the received data before processing.
1 parent 4671831 commit 7387bc9

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

java/src/org/openqa/selenium/remote/http/jdk/JdkHttpClient.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,18 @@ public WebSocket openSocket(HttpRequest request, WebSocket.Listener listener) {
123123
client.newWebSocketBuilder().buildAsync(
124124
uri,
125125
new java.net.http.WebSocket.Listener() {
126+
final StringBuilder builder = new StringBuilder();
126127

127128
@Override
128129
public CompletionStage<?> onText(java.net.http.WebSocket webSocket, CharSequence data, boolean last) {
129-
listener.onText(data);
130+
builder.append(data);
131+
132+
if (last) {
133+
listener.onText(builder.toString());
134+
builder.setLength(0);
135+
}
136+
137+
webSocket.request(1);
130138
return null;
131139
}
132140

@@ -136,6 +144,7 @@ public CompletionStage<?> onBinary(java.net.http.WebSocket webSocket, ByteBuffer
136144
data.get(ary, 0, ary.length);
137145

138146
listener.onBinary(ary);
147+
webSocket.request(1);
139148
return null;
140149
}
141150

@@ -148,6 +157,7 @@ public CompletionStage<?> onClose(java.net.http.WebSocket webSocket, int statusC
148157
@Override
149158
public void onError(java.net.http.WebSocket webSocket, Throwable error) {
150159
listener.onError(error);
160+
webSocket.request(1);
151161
}
152162
});
153163

0 commit comments

Comments
 (0)