If move destination file exists, it is overwritten on linux, but on windows throws exception.
Moreover, the windows exception message is little bit confusing in this case:
"File exists: [SOURCE_FILE_NAME]"
instead of
"File exists: [DESTINATION_FILE_NAME]"