6984545: (fc) transferFrom does not throw NonReadableChannelException when target is size 0 and non-readable
Alan.Bateman at oracle.com
Tue Sep 14 20:38:04 PDT 2010
Rémi Forax wrote:
> what if transferFromArbitraryChannel is used instead of
> transferFromFileChannel ?
> PS: I hope this sentence is correct in English
Your English is fine and it's a good question. In the arbitrary channel
(not a FileChannel) case then the transferFrom/transferTo methods would
need to attempt a read or write for the count == 0 case as they can't
tell from the channel type. The long standing behavior has been to do
nothing and so would require a bit of consideration before changing it.
In implementation terms this would mean reading with a buffer that has 0
bytes remaining. I'll create a bug as a reminder. It may be that the
spec needs to be clarified for this corner case. For now, I'd like to
restore the behavior for the FileChannel case as it is impacted by the
zero length file case.
More information about the nio-dev