RFR: 8310902: (fc) FileChannel.transferXXX async close and interrupt issues [v3]
Alan Bateman
alanb at openjdk.org
Wed Jun 28 06:18:35 UTC 2023
> 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 with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains seven additional commits since the last revision:
- Merge
- Make transferFromDirect more consistent
- Merge
- More robustness
- Update
- Update
- Initial commit
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/14656/files
- new: https://git.openjdk.org/jdk/pull/14656/files/d5d8f742..639372ca
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=14656&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=14656&range=01-02
Stats: 7767 lines in 311 files changed: 2910 ins; 2345 del; 2512 mod
Patch: https://git.openjdk.org/jdk/pull/14656.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14656/head:pull/14656
PR: https://git.openjdk.org/jdk/pull/14656
More information about the nio-dev
mailing list