RFR: 8319531: FileServerHandler::discardRequestBody could be improved [v3]

Michael McMahon michaelm at openjdk.org
Wed Nov 15 07:13:29 UTC 2023


On Mon, 13 Nov 2023 15:25:25 GMT, Darragh Clarke <dclarke at openjdk.org> wrote:

>> **Problem**
>> `discardRequestBody` calls `InputStream::readAllBytes` to read and discard all the request body bytes. This is somewhat wasteful as they can instead be skipped.
>> 
>> **Changes**
>> - Updated `FileServerHandler::discardRequestBody` to use `InputStream::skip`.
>> - Created skip in `LeftOverInputStream` based on [InputStream](https://github.com/openjdk/jdk/blob/c9657cad124d2be10b8d6006d0ca9a038b1c5945/src/java.base/share/classes/java/io/InputStream.java#L540). This gets used by `FixedLengthInputStream` and `ChunkedInputStream` which previously had been using the skip implementation from `FilteredInputStream` which would have caused blocking.
>> 
>> - Also made a minor change to `LeftOverInputStream::Drain` to change bufSize.
>> 
>> 
>> I ran test tiers 1-3 and all tests are passing with these changes
>
> Darragh Clarke has updated the pull request incrementally with one additional commit since the last revision:
> 
>   updated drain to use the new skip method

Marked as reviewed by michaelm (Reviewer).

drain() was implemented prior to readNBytes() being added in JDK 12. It would have just used that method instead if it were available. I don't think it's worth going back and changing it though. So, the fix LGTM

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

PR Review: https://git.openjdk.org/jdk/pull/16616#pullrequestreview-1731368671
PR Comment: https://git.openjdk.org/jdk/pull/16616#issuecomment-1811918864


More information about the net-dev mailing list