Files.getFileAttributeView()阻塞?

时间:2016-01-27 15:53:28

标签: java windows-8 java-8 nio

java.nio文件系统API存在一个特殊问题。我的应用程序在Windows 8,Java 1.8版上运行。我为我的应用程序方案附加了备用数据流到我的文件。

以下是代码:

log.info("Path for which file id will be retrieved: " + fullPath);
UserDefinedFileAttributeView fileAttributeView = Files.getFileAttributeView(fullPath, UserDefinedFileAttributeView.class); //line 2
List<String> userAttributes = fileAttributeView.list();
if (userAttributes.contains("objectid")) {
    byte[] b = (byte[]) Files.getAttribute(fullPath, "user:objectid"); //line 5
    String objectId = new String(b, "UTF-8");
    log.info("File id retrieved successfully: " + objectId); //line 7
    return objectId;
}
log.info("User attributes does not contain OBJECTID ,null file id will be returned."); //line 10
return null;

上面的代码是获取用户定义属性的文件属性视图。

我的自定义属性称为objectid。对于我的一位用户,既未记录(第7行)的日志,也未记录第10行的日志。而应用程序刚刚被阻止。我认为它在第2行和第3行之间被阻塞,其中进行了两次文件API调用。因为在我的场景中,代码执行不应该到达第5行。

问题:是否存在Files.getFileAttributeView()UserDefineFileAttributeView.list()来电被阻止的情况?它可以特定于任何文件系统或我可能遗失的任何其他东西吗?我在上面的代码中有适当的异常处理。

由于它是一个生产系统,我无法调试,而且线程转储也没有显示任何内容。这只发生在一个使这个案例变得有趣的用户身上。

0 个答案:

没有答案