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
