## What is the purpose of the change Currently all the calls to one of the `FileChannel.write()` methods assume that this method will not return before the whole buffer is written, like the one in `AsynchronousFileIOChannel.write()`. However, this assumption may not be right for all the environments and there is no such guarantee.
## Brief change log - add `FileUtils#writeCompletely()` that loops through the provided buffer until it is completely written - adapt all uses of `FileChannel.write()` to use this helper method ## Verifying this change No tests were added. - Does it make sense to test the utility method? no, the functionality is too basic - Previously existing tests for writing to a `FileChannel` apparently only covered complete writes through a single call (no failed tests afaik). Extending them may be difficult difficult (`FileChannel` usually internal, need to override it to force the behaviour) and potentially not necessary either - waiting for a second opinion here. ## Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): **no** - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: **no** - The serializers: **no** - The runtime per-record code paths (performance sensitive): **no** (per buffer written to disk) - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: **no** - The S3 file system connector: **no** ## Documentation - Does this pull request introduce a new feature? **no** - If yes, how is the feature documented? **not documented** [ Full content available at: https://github.com/apache/flink/pull/6788 ] This message was relayed via gitbox.apache.org for [email protected]
