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