RFR: 7026262: HttpServer: improve handling of finished HTTP exchanges
Daniel Jeliński
djelinski at openjdk.org
Thu Mar 23 15:58:52 UTC 2023
This patch fixes the following issues with HttpHandler exception handling:
- The connection is no longer closed if an exception is thrown after the response is completed. As soon as the response is completed, the connection is added back to the pool, ready for reuse. Closing the connection would race with the subsequent handler.
- The stream returned by `getResponseBody` is now usable even if the response has zero-length body. Writing any data to the stream will still fail, but zero-length writes and closing the stream will now succeed.
- `ServerImpl.Exchange.reject` now sends a `Connection: close` header in addition to closing the connection
The test `B8293562` had to be adjusted to avoid `Connection: close`.
Additionally, while I was looking for a good test to copy from, I found and fixed a bug in test `B5045306`.
The new tests are passing with this patch, failing without it. Tier 1-3 clean.
-------------
Commit messages:
- Fix broken test
- Do not close connection
- Fix test
- OutputStream should be closeable even when response is zero-length
Changes: https://git.openjdk.org/jdk/pull/13157/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13157&range=00
Issue: https://bugs.openjdk.org/browse/JDK-7026262
Stats: 308 lines in 6 files changed: 278 ins; 16 del; 14 mod
Patch: https://git.openjdk.org/jdk/pull/13157.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/13157/head:pull/13157
PR: https://git.openjdk.org/jdk/pull/13157
More information about the net-dev
mailing list