java.util.zip.DataFormatException:無効な距離が遠すぎます



Java Util Zip Dataformatexception



war / jarファイルの抽出中に次のエラーが発生しました。
java.util.zip.ZipException:無効な距離が遠すぎます
org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.readFromInflater(ZipArchiveInputStream.java:478)で
org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.readDeflated(ZipArchiveInputStream.java:443)で
org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.read(ZipArchiveInputStream.java:384)で
java.io.InputStream.read(不明なソース)で
org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:75)で
org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:56)で
com.xunge.AESFileEncoder $ 1.run(AESFileEncoder.java:149)で
java.lang.Thread.run(不明なソース)で
原因:java.util.zip.DataFormatException:無効な距離が遠すぎます
java.util.zip.Inflater.inflateBytes(ネイティブメソッド)で
java.util.zip.Inflater.inflate(不明なソース)で
org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.readFromInflater(ZipArchiveInputStream.java:476)で
…あと7つ

関連コード:



PipedInputStream pin = new PipedInputStream() PipedOutputStream pout = new PipedOutputStream(pin) new Thread(new Runnable() { public void run() { try { IOUtils.copy(ais, pout) pout.close() } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace() } } }).start() ArchiveInputStream inJar = new ArchiveStreamFactory() .createArchiveInputStream(ArchiveStreamFactory.JAR, pin)

上記のコードは問題ありません。ピンを使用するコードとピンの宣言コードが多すぎると、この例外が発生します。具体的には、実験はなく、論理的な判断を下す理由かもしれません。