RFR: 8310902: (fc) FileChannel.transferXXX async close and interrupt issues [v4]
Brian Burkhalter
bpb at openjdk.org
Wed Jun 28 22:56:58 UTC 2023
On Wed, 28 Jun 2023 19:46:13 GMT, Alan Bateman <alanb at openjdk.org> wrote:
>> This change fixes a number of bugs with FileChannel.transferTo/transerFrom that arise when the source or target channel is closed, or the thread is interrupted, during the transfer. More specifically:
>>
>> - The direct implementations operate on the raw file descriptor and don't prevent the target/source channel from being closed during the transfer. For this PR, the direct transferTo is limited to cases where the target is a FileChannel or SocketChannel. It could be extended to other SelChImpl implementations (SinkChannel, DatagramChannel) if needed, but they are less interesting at this time.
>>
>> - The transferTo/transferFrom methods are specified to throw ClosedByInterruptException after closing both channels. This is implemented inconsistently, and leaves one channel open in several cases.
>
> Alan Bateman has updated the pull request incrementally with one additional commit since the last revision:
>
> Cleanup transferToDirectNotSupported/transferFromDirectNotSupported setting
Last changes look good. Approved.
-------------
Marked as reviewed by bpb (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/14656#pullrequestreview-1504322865
More information about the nio-dev
mailing list