memory mapped file が消せない。

なんか、下のプログラムを走らせるとファイルが消せない。

File = new File("foo.txt");
FileInputStream in = new FileInputStream(file);
FileChannel channel = in.getChannel();
MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, file.length());
channel.close();
if (file.delete()) {
    System.out.println("delete succeeded.");
} else {
    System.out.println("delete fail.");
}

おかしいと思ってぐぐったら普通にBug Paradeにあった。

しかも、

We cannot fix this. Windows does not allow a mapped file to be deleted. This problem should be ameliorated somewhat once we fix our garbage collectors to deallocate direct buffers more promptly (see 4469299), but otherwise there's nothing we can do about this.

だとさ。でも、その下で、「The evaluation is INCORRECT」とかいわれてたりして、良くわからん。「一度リネームしてからdeleteOnExitを使え」みたいなことも書かれているから、そのとおりにやってみたけど、そっちもうまくいかない。どうしろと。