Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法解释的ClosedByInterruptException。Java文件通道错误?_Java_Exception_Nio_Filechannel - Fatal编程技术网

无法解释的ClosedByInterruptException。Java文件通道错误?

无法解释的ClosedByInterruptException。Java文件通道错误?,java,exception,nio,filechannel,Java,Exception,Nio,Filechannel,我的生产应用程序在调用FileChannel上的方法时,很少会遇到意外的closedbyinterrupexception。根据Java文档,当调用线程处于中断状态时,就会发生这种情况。有趣的是,我的应用程序从不中断任何线程。这似乎是从应用程序下方发生的。也许是某种系统中断?有人遇到过这个问题吗 java.nio.channels.ClosedByInterruptException at java.nio.channels.spi.AbstractInterruptibleChanne

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

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

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

您是否取消过任何未来?您的环境是什么?类似于Tomcat或普通Java应用程序?该应用程序是管理文件通道的简单web应用程序。环境是Linux、Java 1.6和Resin web容器。web应用程序不进行线程管理。它不使用线程池执行器或未来。在“JVM中导致FileChannel行为与文档相反的无法解释的情况”和“存在错误”之间有什么区别?不是说你错了,只是“无法解释的情况”并不是很有帮助。@StevenSchlansker我没有说有或没有错误,我说不太可能是
FileChannel
中的错误。我觉得很清楚,谢谢你的确认。这就是我的意思。当我说FileChannel中有一个bug时,我不是指Java代码中的bug,而是指FileChannel类中某个地方的本机/JVM代码中的bug。@Elliot这实际上不是我的意思。如果JVM正在中断线程,那么它不太可能来自
FileChannel
类下的任何位置。这几乎可以肯定是在一段完全不相关的代码中。嗯,这很有趣。我根本不相信线程中断正在发生。我认为最有可能的情况是,在FileChannel调用期间,在本机IO代码中发生JVM级别的异常。ClosedByInterruptException可能是最适用于意外情况的。可能发生了某种系统中断。