RFR: 8335135: HttpURLConnection#HttpInputStream does not throw IOException when response is truncated
Daniel Fuchs
dfuchs at openjdk.org
Thu Jun 27 06:59:15 UTC 2024
On Wed, 26 Jun 2024 14:35:57 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:
> Currently HttpUrlConnection accepts truncated responses: if the server sends a `Content-Length` header, and then closes the connection before transferring all promised bytes, the input stream reports a clean EOF.
>
> In this PR I modify the MeteredStream class to throw an IOException when it detects EOF before receiving all promised response bytes. MeteredStream (or its subclass KeepAliveStream) is used when the response contains a content-length header.
>
> The included test fails without the change, passes with it.
> The same exception message and type is reported when a chunked response (`Transfer-Encoding: chunked`) is truncated.
> Unknown length responses that are terminated by EOF continue to work.
>
> 2 tests depended on the old behavior and had to be adjusted. The remaining tier 1-3 tests continue to pass.
If the test is stable, this looks reasonable to me.
-------------
Marked as reviewed by dfuchs (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/19909#pullrequestreview-2144415777
More information about the net-dev
mailing list