RFR: 8294696 - BufferedInputStream.transferTo should drain buffer when mark set [v6]

Vladimir Sitnikov vsitnikov at openjdk.org
Wed Nov 29 05:52:23 UTC 2023


On Mon, 31 Oct 2022 13:30:13 GMT, Markus KARG <duke at openjdk.org> wrote:

>> This PR implements JDK-8294696.
>
> Markus KARG has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Alternative C + Arrays.copyOfRange()

src/java.base/share/classes/java/io/BufferedInputStream.java line 612:

> 610:             if (avail > 0) {
> 611:                 // Prevent poisoning and leaking of buf
> 612:                 byte[] buffer = Arrays.copyOfRange(getBufIfOpen(), pos, count);

@mkarg , could you please clarify why you added `Arrays.copyOfRange` here?
It seems to be an excessive copy that doesn't help much.

`buf` is `protected` in `BufferedInputStream`, so if someone really wants to get hold of the actual buffer, they can subclass `BufferedInputStream` and expose the buffer directly.
What do you think of removing `copyOfRange`?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/10525#discussion_r1408775984


More information about the core-libs-dev mailing list