RFR: 8369812: HttpClient doesn't handle H3_REQUEST_REJECTED correctly [v3]

Daniel Fuchs dfuchs at openjdk.org
Tue Oct 14 13:36:52 UTC 2025


On Tue, 14 Oct 2025 12:59:16 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:

>> Can I please get a review of this change which proposes to fix the implementation in HttpClient to correctly handle the H3_REQUEST_REJECTED error code?
>> 
>> As noted in https://bugs.openjdk.org/browse/JDK-8369812, the current implementation in the HttpClient treats this like an error and causes the HTTP request to fail. The proposed change in this PR addresses this by marking a request which was reset due to H3_REQUEST_REJECTED as unprocessed. This then allows the `MultiExchange` to reissue the request afresh. This new behaviour matches the expectation specified for this error code in the HTTP/3 RFC.
>> 
>> A new jtreg test has been introduced to reproduce the issue and verify the fix.
>
> Jaikiran Pai has updated the pull request incrementally with one additional commit since the last revision:
> 
>   forgot to include @bug id in the test definition

Changes requested by dfuchs (Reviewer).

test/jdk/java/net/httpclient/http3/H3RequestRejectedTest.java line 150:

> 148:                         .setOption(H3_DISCOVERY, HTTP_3_URI_ONLY)
> 149:                         .uri(new URI(reqURI.toString() + "?iteration=" + i))
> 150:                         .build();

To make sure the request is retried for the right reasons you might want to switch to POST rather than GET here, as GET may be retried whatever the reset reason.

-------------

PR Review: https://git.openjdk.org/jdk/pull/27793#pullrequestreview-3335704803
PR Review Comment: https://git.openjdk.org/jdk/pull/27793#discussion_r2429214876


More information about the net-dev mailing list