2013-11-08 2 views
0

я получаю следующее исключениеBad исключение дескриптора файла при использовании file.length

java.io.IOException: Bad file descriptor 
    at gnu.java.nio.channels.FileChannelImpl.size(libgcj.so.10) 
    at java.io.RandomAccessFile.length(libgcj.so.10) 
    at ServerSendFile.getAndSetDataFromFile(ServerSendFile.java:738) 
    at ServerSendFile.runOnce(ServerSendFile.java:613) 
    at ServerSendFile.startSendFile(ServerSendFile.java:212) 
    at Server.procMsgFromNetstorm(Server.java:583) 
    at Server.tcpRecv(Server.java:465) 
    at Server.run(Server.java:292) 

Здесь я был Server.java, запускающий ServerSendFile как нить для каждого пришедшего запроса на Server.java

Цель ServerSendFile он отправит данные из файла

Существует много кода, я только вставил небольшой снимок, который вызывается по строке rafLogFile.length();

try 
     { 
     long fileSize = rafLogFile.length(); 

     //if the file size may size is zero then, return to fetch the data next innterval 
     if(fileSize == 0) 
     { 
      return true; 
     } 
     } 
     catch(IOException eio) 
     { 
     cmonLog.stackTraceLog(className, "getAndSetDataFromFile", "", "", "Exception caught in retriving length of log file = " + lastFile.getAbsolutePath(), eio); 
     } 
+1

ли файл закрыт в любом месте, прежде чем программа достигает выше код? –

ответ

0

Возможно, это проблема с версией jdk/jre.

Просто проверьте, если код компилируется и работает с таким же JDK/JRE версии

+0

Он использует 'gcj' –

Смежные вопросы