RFR: 8307648: java/net/httpclient/ExpectContinueTest.java timed out
Daniel Fuchs
dfuchs at openjdk.org
Mon May 29 17:18:20 UTC 2023
Please find here a fix for the java/net/httpclient/ExpectContinueTest.java which was failing intermittently.
It turns out there was two bugs here:
- on on the server side, which added the END_STREAM flag to the HeaderFrame containing the 100 response.
This can obviously never be right since 100 is an intermediary response, which should be followed by a final response.
- on the client side, because this was interpreted as "there will be no body" - but it didn't prevent the client from waiting for the final response.
With this fix a 100 response carrying the END_STREAM flag will cause the exchange to be cancelled. I manually verified that this worked before fixing the server side.
The logic on server side is fixed to ignore whatever length is passed to sendResponseHeaders() if 100 is supplied, and to not add the END_STREAM flag to the HeaderFrame that carries the 100 response (which is a side effect of setting the expected length parameter to 0 in that case).
-------------
Commit messages:
- 8307648
Changes: https://git.openjdk.org/jdk/pull/14207/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14207&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8307648
Stats: 61 lines in 3 files changed: 54 ins; 0 del; 7 mod
Patch: https://git.openjdk.org/jdk/pull/14207.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14207/head:pull/14207
PR: https://git.openjdk.org/jdk/pull/14207
More information about the net-dev
mailing list