java.lang.NullPointerException: Инфлятор был закрыт на InputStreamReader - PullRequest
6 голосов
/ 15 января 2011

У меня следующая проблема:

Когда я загружаю ресурс из проекта, все работает нормально, но когда я помещаю его в .jar и пытаюсь загрузить, я получаю исключение.

Код:

InputStreamReader reader =
    new InputStreamReader(
        this.getClass().getResource(fileName).openStream())  
CsvReader stream = new CsvReader(reader);  
try {  
    while (stream.readRecord()) {  
        line = stream.getRawRecord();  
        //DO SOMETHING...  
    }  
}catch (Exception e) {  
    System.err.println(e.getMessage());  
    e.printStackTrace();  
} finally {  
    stream.close();  
}

И stackTrace:

    Inflater has been closed java.lang.NullPointerException: Inflater has been closed
 at java.util.zip.Inflater.ensureOpen(Inflater.java:364)
 at java.util.zip.Inflater.inflate(Inflater.java:237)
 at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:135)
 at java.io.FilterInputStream.read(FilterInputStream.java:116)
 at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
 at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
 at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
 at java.io.InputStreamReader.read(InputStreamReader.java:167)
 at utils.csvreader.CsvReader.checkDataLength(CsvReader.java:1198)
 at utils.csvreader.CsvReader.readRecord(CsvReader.java:604)

Проблема возникает на stream.getRawRecord().Я также пробовал с BufferedReader с тем же результатом на readLine();

Есть идеи?

Ответы [ 2 ]

1 голос
/ 15 января 2011

Это может быть ошибка в Java. У меня была похожая проблема, описанная здесь: https://issues.apache.org/jira/browse/FELIX-1032

Ваше приложение работает с некоторыми специальными настройками загрузчика классов?

0 голосов
/ 15 января 2011

загрузка ресурса из проекта означает, что вы не имеете дело с zip (jar is zip), поэтому InputStreamReader преобразуется в файл, который вы хотите прочитать.

Я предполагаю, что InputStreamReader преобразуется в нулевой или неправильный файл при работе с jar. Логарифм должен быть asure

...