RFR: 8341666: FileInputStream doesn't support readAllBytes() or readNBytes(int) on pseudo devices
Brian Burkhalter
bpb at openjdk.org
Thu Oct 24 15:16:05 UTC 2024
On Thu, 24 Oct 2024 15:11:54 GMT, Brian Burkhalter <bpb at openjdk.org> wrote:
>> Hello Alan, I didn't just mean the readAllBytes. The rest of the changes in this PR calls canSeek() even in readNBytes() and skip() implementations which may not be reading till EOF and in theory could be invoked multiple times.
>> Having said that, the proposal to cache was merely a suggestion. I don't have any data to suggest if these methods are called frequent enough to have the additional native call show up prominently in that call path.
>
>> [...] do you think we should reduce these native calls in this change and call `canSeek()` just once [...]
>
> I think that is a good idea but I would think it best to do i in a similar way to the recent change to `ChannelInputStream` that added `isOther`.
> I think the main thing with this PR is whether canSeek is the right thing to use.
`canSeek` is really the same as `isOther` in the recent `Files.newInputStream` change, but given that on Windows the result of the function is always `true`, the naming `isOther` (which would always return `false`) did not seem apropos.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21673#discussion_r1815205981
More information about the core-libs-dev
mailing list