> **Issue**
> It was observed that when the httpclient sends a POST request with the 
> `Expect: 100 Continue` header set and the server replies with a response code 
> `417 Expectation Failed` that the httpclient hangs indefinitely when the 
> version of Http used is HTTP/2. However, it was also seen that the issue 
> persisted with HTTP/1_1 with the same usage.
> 
> This was caused by an implementation in ExchangeImpl that resulted in two 
> calls to readBodyAsync() in this case, where the second call causes the 
> indefinite hanging (as if there was a respomse body, it has already been 
> read).
> 
> **Solution**
> When ExchangeImpl::expectContinue() detects that a response code 417 is 
> received, two things occur. Firstly, a flag is set which ensures that the 
> connection is closed locally in this case. Secondly, the response is returned 
> to the client as a failed future, A unit test was added to ensure that this 
> usage of the httpclient does not cause hanging.

Conor Cleary has updated the pull request incrementally with one additional 
commit since the last revision:

  8286171: Added teardown method and comments

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/9093/files
  - new: https://git.openjdk.java.net/jdk/pull/9093/files/ce847b45..ea059a21

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=9093&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=9093&range=00-01

  Stats: 41 lines in 3 files changed: 22 ins; 2 del; 17 mod
  Patch: https://git.openjdk.java.net/jdk/pull/9093.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/9093/head:pull/9093

PR: https://git.openjdk.java.net/jdk/pull/9093

Reply via email to