次のような zip ファイルにエントリを書き込んでいる場合:
ZipEntry ze = zin.getNextEntry();
while (ze != null) {
InputStream is = zf.getInputStream(ze);
zos.putNextEntry(ze);
int len;
while ((len = is.read(buffer)) >= 0) {
zos.write(buffer, 0, len);
}
zos.closeEntry();
ze = zin.getNextEntry();
}
2 番目の while ループで次の例外が発生します。
java.util.zip.ZipException: invalid code lengths set
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
この例外がスローされる理由とその意味を知っている人はいますか?
PS さまざまなフォルダーからさまざまなログ ファイルを圧縮するために、JBoss 7.1.1 のリスナーでこれを実行していることに言及する必要があります。フォルダごとにスレッドがあります。複数のスレッドを使用すると、この問題が発生する可能性はありますか?