Java File.canRead () навсегда зависает при плохом монтировании NFS - PullRequest
0 голосов
/ 10 июля 2019

У меня есть процесс Java, пытающийся прочитать файл через монтирование NFS. Я проверяю с File.canRead(), прежде чем пытаться прочитать. В этом случае гора находится в плохом состоянии. Вы можете увидеть это и в командной строке: и «ls», и «df» зависают навсегда.

File.canRead() висит навсегда, и я действительно предпочел бы иметь тайм-аут и зарегистрировать ошибку, чем навсегда зависать мой процесс. Какой идеальный способ в Java проверить, что файл может быть прочитан без риска зависания?

Я сделал дамп и увидел

java.lang.Thread.State: RUNNABLE
    at java.io.UnixFileSystem.checkAccess(Native Method)
    at java.io.File.canRead(File.java:768)
...