From f74ad2f57e67d060a9fabb6c56d7800b6ae7ee40 Mon Sep 17 00:00:00 2001 From: Daniel Kec Date: Tue, 26 Sep 2023 21:26:58 +0200 Subject: [PATCH] Remove prefetch #7663 --- .../webclient/http2/Http2ClientConnection.java | 16 +++++++++------- .../Http2ClientProtocolConfigBlueprint.java | 9 --------- .../tests/http2/ClientFlowControlTest.java | 1 - 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/webclient/http2/src/main/java/io/helidon/webclient/http2/Http2ClientConnection.java b/webclient/http2/src/main/java/io/helidon/webclient/http2/Http2ClientConnection.java index 4f39e9f0932..dc800d63461 100644 --- a/webclient/http2/src/main/java/io/helidon/webclient/http2/Http2ClientConnection.java +++ b/webclient/http2/src/main/java/io/helidon/webclient/http2/Http2ClientConnection.java @@ -237,13 +237,15 @@ private void sendPreface(Http2ClientProtocolConfig config, boolean sendSettings) sendListener.frame(ctx, 0, http2Settings); writer.write(frameData); } - // First connection window update, with prefetch increment - Http2WindowUpdate windowUpdate = new Http2WindowUpdate(config.prefetch()); - Http2Flag.NoFlags flags = Http2Flag.NoFlags.create(); - Http2FrameData frameData = windowUpdate.toFrameData(null, 0, flags); - sendListener.frameHeader(ctx, 0, frameData.header()); - sendListener.frame(ctx, 0, windowUpdate); - writer.write(frameData); + // Initial window size for connection is not configurable, subsequent update win update is needed + int connectionWinSizeUpd = config.initialWindowSize() - WindowSize.DEFAULT_WIN_SIZE; + if (connectionWinSizeUpd > 0) { + Http2WindowUpdate windowUpdate = new Http2WindowUpdate(connectionWinSizeUpd); + Http2FrameData frameData = windowUpdate.toFrameData(null, 0, Http2Flag.NoFlags.create()); + sendListener.frameHeader(ctx, 0, frameData.header()); + sendListener.frame(ctx, 0, windowUpdate); + writer.write(frameData); + } } private void start(Http2ClientProtocolConfig protocolConfig, diff --git a/webclient/http2/src/main/java/io/helidon/webclient/http2/Http2ClientProtocolConfigBlueprint.java b/webclient/http2/src/main/java/io/helidon/webclient/http2/Http2ClientProtocolConfigBlueprint.java index 0c1cadbeede..69fefce0bd7 100644 --- a/webclient/http2/src/main/java/io/helidon/webclient/http2/Http2ClientProtocolConfigBlueprint.java +++ b/webclient/http2/src/main/java/io/helidon/webclient/http2/Http2ClientProtocolConfigBlueprint.java @@ -84,15 +84,6 @@ default String type() { @ConfiguredOption("65535") int initialWindowSize(); - /** - * First connection window update increment sent right after the connection is established. - * Defaults to {@code 33_554_432}. - * - * @return number of bytes the client is prepared to receive as data from all the streams combined - */ - @ConfiguredOption("33554432") - int prefetch(); - /** * Timeout for blocking between windows size check iterations. * diff --git a/webclient/tests/http2/src/test/java/io/helidon/webclient/tests/http2/ClientFlowControlTest.java b/webclient/tests/http2/src/test/java/io/helidon/webclient/tests/http2/ClientFlowControlTest.java index 848f9ec3c83..39277868a1a 100644 --- a/webclient/tests/http2/src/test/java/io/helidon/webclient/tests/http2/ClientFlowControlTest.java +++ b/webclient/tests/http2/src/test/java/io/helidon/webclient/tests/http2/ClientFlowControlTest.java @@ -99,7 +99,6 @@ static void beforeAll() throws ExecutionException, InterruptedException, Timeout client = Http2Client.builder() .baseUri("http://localhost:" + server.actualPort() + "/") - .protocolConfig(it -> it.prefetch(10000)) .build(); }