It's unfortunate that the new method has to run pathToFile on the source and destination again. There is quite a bit of work behind that method call, and the result is already available in the scope of rename.
I suggest that the new method accept the arguments as both Path and File to avoid the redundant call. Combining that with Colin's rename suggestion, the signature would be:
public final boolean handleEmptyDstDirectoryOnWindows(Path src, File srcFile, Path dst, File dstFile) throws IOException
Admittedly, that's a strange method signature, but this is only meant to be visible for testing, not as a public API. To that end, let's also mark the method final.
Of course this bug is Windows-specific and we could easily fix it in a follow-on JIRA (probably via JNI code).
I'm not sure this is true. Last time I checked, it looked like the Windows API did not offer any way to match the POSIX semantics exactly. I'd be happy to be proven wrong though, because the current approach is admittedly not atomic.