RFR: 8292044: HttpClient doesn't handle 102 or 103 properly [v13]
Daniel Fuchs
dfuchs at openjdk.org
Tue Sep 20 16:38:54 UTC 2022
On Tue, 20 Sep 2022 05:38:49 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:
>> Can I please get a review of this change which proposes to fix https://bugs.openjdk.org/browse/JDK-8292044?
>>
>> The linked JBS issue notes two parts to fixing this. Part one is to (internally) ignore the intermediate 1xx informational responses, in the client and wait for subsequent final response from the server. Part two is to introduce newer APIs to let applications using HttpClient, to have access to these intermediate response (codes). This commit (only) addresses part one. Part two is out of scope of this change and a separate issue will be opened to address it (at a later time).
>>
>> The commit in this PR introduces a check to see if the returned response is an informational response (as defined by RFC-2616 https://www.rfc-editor.org/rfc/rfc2616#page-58). If the response code is between 102 and 199 (inclusive), then this change ignores that response and keeps waiting for a subsequent final response from the server.
>>
>> The request timeout (if set) will _not_ be reset when a intermediate informational response is received (and we ignore it). The request timeout handling continues to be the same as what it is currently and will span from the request start till the final response is received. If no final response is received within the duration of request timeout (if set) then the application will continue to receive a request timeout exception.
>>
>> A new test class has been introduced to reproduce the issue and test the fix. The test tests both HTTP/1.1 and HTTP2.
>>
>> tier1, tier2 and tier3 testing is in progress.
>
> Jaikiran Pai has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 16 additional commits since the last revision:
>
> - merge latest from master branch
> - fix websocket test failures
> - use reference tracker in test as suggested by Daniel
> - minor fix to log message
> - address review comments
> - remove fully qualified usage of HttpTestServer/Exchange
> - Close the connection/stream when a 101 response isn't expected
> - ignore 101 response if the request didn't ask for an Upgrade
> - fix request URI to take into account IPv6
> - code comment adjustment
> - ... and 6 more: https://git.openjdk.org/jdk/compare/717c3664...508287a1
LGTM
-------------
Marked as reviewed by dfuchs (Reviewer).
PR: https://git.openjdk.org/jdk/pull/10169
More information about the net-dev
mailing list