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

Reply via email to