On Tue, 8 Jul 2025 14:04:56 GMT, Daniel Fuchs <dfu...@openjdk.org> wrote:
>> Hi, >> >> Please find here a PR for the implementation of [JEP 517: HTTP/3 for the >> HTTP Client API](https://openjdk.org/jeps/517). >> >> The CSR can be viewed at [JDK-8350588: Implement JEP 517: HTTP/3 for the >> HTTP Client API](https://bugs.openjdk.org/browse/JDK-8350588) >> >> This JEP proposes to enhance the HttpClient implementation to support HTTP/3. >> It adds a non-exposed / non-exported internal implementation of the QUIC >> protocol based on DatagramChannel and the SunJSSE SSLContext provider. > > Daniel Fuchs has updated the pull request with a new target base due to a > merge or a rebase. The pull request now contains 550 commits: > > - merge latest changes from master branch > - http3: fix new HttpHeadersBuilder constructor > - qpack - optimize processing of decoder instruction exceptions > - http3/quic: update the code to use the newly introduced > jdk.internal.net.http.Origin > - Avoid speculating about the future in TODOs > - http3: rename PacketSpaceManager::isAcknowledging to > PacketSpaceManager::trackAcknowledgement > - merge latest changes from master branch > - http3: fix typo in UniStreamPair.java > - WriterQueue may leak before the constructor completes > - Limit the number of retries in H3UserInfoTest > - ... and 540 more: https://git.openjdk.org/jdk/compare/7b255b8a...f0a4fd3d test/jdk/java/net/httpclient/http3/H3StreamLimitReachedTest.java line 94: > 92: import static org.testng.Assert.assertFalse; > 93: > 94: public class H3StreamLimitReachedTest implements HttpServerAdapters { This test seems to duplicate the checks in `StreamLimitTest`. test/jdk/java/net/httpclient/http3/H3UnsupportedSSLParametersTest.java line 42: > 40: * @run junit H3UnsupportedSSLParametersTest > 41: */ > 42: public class H3UnsupportedSSLParametersTest { This test overlaps with H3QuicTLSConnection. Any reason we shouldn't merge them? test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/ThrowingConsumer.java line 26: > 24: > 25: @FunctionalInterface > 26: public interface ThrowingConsumer<T, X extends Throwable> { This interface is only implemented by Http2Handler. We should remove it. test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/Http2RedirectHandler.java line 61: > 59: } > 60: > 61: protected byte[] getResponseBytes() { this method doesn't appear to be overridden anywhere. Should we revert these changes? test/jdk/jdk/internal/net/http/quic/packets/QuicPacketNumbersTest.java line 33: > 31: * @modules java.net.http/jdk.internal.net.http.quic.packets > 32: */ > 33: public class QuicPacketNumbersTest { This test covers the same functions as `quic/PacketNumbersTest.java`; can we remove one? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24751#discussion_r2228940118 PR Review Comment: https://git.openjdk.org/jdk/pull/24751#discussion_r2228863718 PR Review Comment: https://git.openjdk.org/jdk/pull/24751#discussion_r2229069373 PR Review Comment: https://git.openjdk.org/jdk/pull/24751#discussion_r2229083738 PR Review Comment: https://git.openjdk.org/jdk/pull/24751#discussion_r2229397818