There are several ways by which an HTTP/2  stream can be closed. Due to the 
built-in asynchronous behavior, and to avoid unnecessary churn when a request 
is cancelled/aborted there are two places where the boolean stream's state 
`closed` can be set to true: `cancelImpl` and `close`. The current code 
completes the subscriber in `cancelImpl`, but the subscriber should also be 
completed in `close`. The intermittent failure happens if `close` gets ever 
called before `cancelImpl`.
This patch fixes that.

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

Commit messages:
 - 8298340

Changes: https://git.openjdk.org/jdk/pull/11595/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11595&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8298340
  Stats: 62 lines in 4 files changed: 57 ins; 1 del; 4 mod
  Patch: https://git.openjdk.org/jdk/pull/11595.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11595/head:pull/11595

PR: https://git.openjdk.org/jdk/pull/11595

Reply via email to