java.util.zip.DataFormatException: invalid distance too far back

简介: 解压 war/jar文件时出现以下错误: java.util.zip.ZipException: invalid distance too far back at org.

解压 war/jar文件时出现以下错误:
java.util.zip.ZipException: invalid distance too far back
at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.readFromInflater(ZipArchiveInputStream.java:478)
at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.readDeflated(ZipArchiveInputStream.java:443)
at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.read(ZipArchiveInputStream.java:384)
at java.io.InputStream.read(Unknown Source)
at org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:75)
at org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:56)
at com.xunge.AESFileEncoder$1.run(AESFileEncoder.java:149)
at java.lang.Thread.run(Unknown Source)
Caused by: java.util.zip.DataFormatException: invalid distance too far back
at java.util.zip.Inflater.inflateBytes(Native Method)
at java.util.zip.Inflater.inflate(Unknown Source)
at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.readFromInflater(ZipArchiveInputStream.java:476)
… 7 more

相关代码:

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

以上代码是没有问题,如果使用 pin 的代码和 pin 的声明代码中间隔了太多的代码就会产生此异常。具体没有做试验,也可能是有逻辑判断语句的原因。

目录
相关文章
|
机器学习/深度学习 移动开发
解决mqtt连接报Connection lost (32109) - java.lang.IllegalArgumentException: Invalid UTF-8 char: [a]错误问题
最近生产环境在向mqtt客户端发布数据时反复出现一会断开一会连接错误,捕获的异常是java.lang.IllegalArgumentException: Invalid UTF-8 char: [a]。尝试各种方式都未找到问题的原因,最后在检查发送主题topic的时候发现所发送mqtt客户端的topic的结尾包含了换行符,最终才将问题得以解决。
6374 0
解决mqtt连接报Connection lost (32109) - java.lang.IllegalArgumentException: Invalid UTF-8 char: [a]错误问题
|
Dubbo 应用服务中间件
java.io.IOException: invalid constant type: 18
java.io.IOException: invalid constant type: 18
1095 0
java.io.IOException: invalid constant type: 18
|
5月前
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
305 3
|
7月前
|
Java Apache 开发者
解决java.lang.IllegalArgumentException: Invalid uri由无效查询引起的问题
最后,当你修改代码以避免这个异常时,保持代码的整洁和可读性同样重要。注释你的代码,用意图清晰的方法名,并确保逻辑简单明了,这样在未来你或其他开发者需要时可以轻松地维护它。
918 20
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must b
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must b
1871 0
|
消息中间件 Java Maven
java.util.zip.ZipException: invalid LOC header (bad signature)
java.util.zip.ZipException: invalid LOC header (bad signature)
418 1
|
Nacos
解决:java.lang.IllegalStateException: Invalid host: lb://exam_farmer_service
解决:java.lang.IllegalStateException: Invalid host: lb://exam_farmer_service
602 0
解决:java.lang.IllegalStateException: Invalid host: lb://exam_farmer_service
java.lang.IllegalArgumentException: Invalid character found in method name
java.lang.IllegalArgumentException: Invalid character found in method name
424 0
【已解决】nested exception is java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
【已解决】nested exception is java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
261 0