The rename operation has many scenarios that are not consistently implemented across file systems.
Strictly define the expected behavior of filesystem APIs and write tests to verify compliance
Make contracts of LocalFileSystem and DistributedFileSystem consistent
HDFS doesn't raise FileNotFoundException if the source of a rename() is missing
FileSystem.rename(final Path src, final Path dst, final Rename... options) to become public; specified, tested
HDFS needs to support new rename introduced for FileContext