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

Reply via email to