OSX で Java 6 経由でマウント ポイントを越えてファイル ロックを取得しようとしています。
private void tryLockThroughShare() {
String path = "/Volumes/Groups/mcm/javaTestInShare.txt";
try {
RandomAccessFile raf = new RandomAccessFile(path, "rw");
FileLock flock = raf.getChannel().tryLock();
System.out.printf("File %s is %s\n", path, (flock != null) ?
("locked") : ("not locked"));
raf.write("yoo hoo!".getBytes());
raf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
AFP または SMB を使用してボリュームをマウントすると、マウント先にファイルを書き込むことはできますが、ファイルをロックできず、代わりに IOException (Operation not supported) を受け取ります。
いくつかの実験の後、ボリュームが NFS を使用してセットアップされたときにロックできることがわかりました。
SMB または AFP マウントでファイルをロックする方法を見つけた人はいますか?