2012-04-09 26 views
0

很少,我的生产应用程序在调用FileChannel上的方法时遇到意外的ClosedByInterruptException。根据Java文档,这发生在调用线程处于中断状态时。有趣的是,我的应用程序从不中断任何线程。这似乎是从应用程序下面发生的。某种系统中断也许?有没有人遇到过这个问题?Unexplained ClosedByInterruptException。 Java FileChannel Bug?

java.nio.channels.ClosedByInterruptException 
    at java.nio.channels.spi.AbstractInterruptibleChannel.end(\ 
     AbstractInterruptibleChannel.java:184) 
    at sun.nio.ch.FileChannelImpl.size(FileChannelImpl.java:314) 
    ... 
+0

你有没有取消任何期货? – jtahlborn 2012-04-10 00:45:09

+0

你的envinronment是什么?像Tomcat或普通Java应用程序? – dash1e 2012-04-10 00:59:48

+0

该应用程序是一个管理文件通道的简单Web应用程序。环境是Linux,Java 1.6和Resin Web容器。 Web应用程序不执行线程管理。它不使用线程池执行程序或期货。 – Elliot 2012-04-10 03:15:27

回答

0

您的应用程序可能永远不会中断线程,但JVM可能因为自己的原因这样做。这根本不可能是一个FileChannel错误,而是JVM本身的一些无法预料的情况。

+0

“导致FileChannel的行为与文档相反的JVM中的不明原因状况”和“存在错误”之间的区别是什么?不是说你错了,只是“不明原因的状况”并不是非常有用。 – 2012-04-12 01:55:59

+1

@StevenSchlansker我没有说有或没有错误,我说它不太可能是'FileChannel' *中的错误*。我似乎很清楚。 – EJP 2012-04-12 02:02:39

+0

感谢您的确认。这实际上就是我的意思。当我说FileChannel中存在一个错误时,我并不是指Java代码中的错误,而是指FileChannel类下某处的本地/ JVM代码中的错误。 – Elliot 2012-04-12 16:06:25