2011-01-14 13 views
5
tarihinde kapatıldı

Aşağıdaki sorun var: Bir .jar üzerine koydu ve çalıştığınızda java.lang.NullPointerException: Inflater InputStreamReader

Bütün çalışıyor projesinden kaynağı yükleyen, ancak

yük Bir istisna alıyorum.

kodudur:

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(); 
} 

Ve stackTrace geçerli:

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) 

sorun stream.getRawRecord() olur. Ayrıca aynı sonuçla BufferedReader'da da denedim. readLine();

Herhangi bir fikrin var mı?

+0

Okuyucuyu kapatmıyor olabilirsiniz. – EJP

cevap

1

Bu, Java'da hata olabilir. Burada açıklanan benzer bir sorun vardı: https://issues.apache.org/jira/browse/FELIX-1032

Uygulamanız bazı özel sınıf yükleyici ayarlarıyla çalışıyor mu?

+0

Hayır, varsayılan ayarları kullanıyorum ama sorun sahip olduğunuzla aynı görünüyor. – Yhonny

+0

Önerilen geçici çözüm ile düzeltemiyorum, ben açıkça close() yöntemini çağırıyorum, ancak sorun hala dosya okunurken oluşur. – Yhonny

-1

projeden yükleme kaynağı, zip (jar zip) ile uğraşmadığınız anlamına gelir, böylece InputStreamReader okumak istediğiniz dosyaya dönüşür.

Tahminimce, InputStreamReader, jar ile çalışırken null veya yanlış dosyaya dönüştüğüdür. Günlük,

+0

Dosya de jar içinde ve bazen iyi çalışıyor, yani ilk kez okumaya çalışıyorum ama ikinci kez çalışıyor (bazen ikinci kez başarısız oluyor). Ancak hata ayıklama, InputStreamReader'ın her zaman kaynağı açtığını gördüm (null değil). – Yhonny

+0

InputStreamReader boşsa, yığın izlemede görünmez. – EJP