Java jzlib 1.0.7:ZOutputStream.write()中的ArrayOutOfBoundException
我有一个简单的测试用例,在jzlib中生成一个可靠的BoundException数组 1.0.7取决于随后写入同一实例的数据 佐特普特河的 堆栈跟踪:Java jzlib 1.0.7:ZOutputStream.write()中的ArrayOutOfBoundException,java,jzlib,Java,Jzlib,我有一个简单的测试用例,在jzlib中生成一个可靠的BoundException数组 1.0.7取决于随后写入同一实例的数据 佐特普特河的 堆栈跟踪: java.lang.ArrayIndexOutOfBoundsException: 587 at com.jcraft.jzlib.Tree.d_code(Tree.java:149) at com.jcraft.jzlib.Deflate.compress_block(Deflate.java:691) at com.j
java.lang.ArrayIndexOutOfBoundsException: 587
at com.jcraft.jzlib.Tree.d_code(Tree.java:149)
at com.jcraft.jzlib.Deflate.compress_block(Deflate.java:691)
at com.jcraft.jzlib.Deflate._tr_flush_block(Deflate.java:897)
at com.jcraft.jzlib.Deflate.flush_block_only(Deflate.java:772)
at com.jcraft.jzlib.Deflate.deflate_slow(Deflate.java:1195)
at com.jcraft.jzlib.Deflate.deflate(Deflate.java:1567)
at com.jcraft.jzlib.ZStream.deflate(ZStream.java:133)
at com.jcraft.jzlib.ZOutputStream.write(ZOutputStream.java:102)
at com.jcraft.jzlib.JZLibTestCase.main(JZLibTestCase.java:51)
at JZLibTestCase.main(JZLibTestCase.java:28)
该问题很少发生,并取决于随后的数据
从jzlib写入一个开放的ZOutputStream
你有没有提示如何解决这个问题?你听说过这个吗?就我所知,你可能已经在JZlib中发现了一个bug。在四处搜索时,我发现其他地方也有你的帖子,附有源文件和数据文件。看来你没有做错什么。您应该能够将任何字节序列流传输到
ZOutputStream
您使用JZlib有什么特别的原因吗?我理解使用它的两个主要原因是支持Z_PARTIAL_FLUSH模式和许可。如果您不需要这种刷新模式,并且使用的是Oracle JVM,那么您应该可以使用附带的。在代码中用它代替ZOuputStream毫无例外。我可以告诉你,你可能发现了JZlib的一个bug。在四处搜索时,我发现其他地方也有你的帖子,附有源文件和数据文件。看来你没有做错什么。您应该能够将任何字节序列流传输到
ZOutputStream
您使用JZlib有什么特别的原因吗?我理解使用它的两个主要原因是支持Z_PARTIAL_FLUSH模式和许可。如果您不需要这种刷新模式,并且使用的是Oracle JVM,那么您应该可以使用附带的。在代码中用它代替ZOuputStream毫无例外。我还没有找到使用jzlib的具体原因,但可以肯定的是,在多处理器系统上的JRE 1.4中使用java.util.zip时,确实存在一个bug,尽管没有人能够具体告诉我是哪一个。从那时起,我们一直在使用jzlib,它已经运行了很多年。很可能已经修好了。尽管如此,使用java.util.zip处理我的简单测试数据的方式与jzlib失败的方式相同,这是真的。我还没有找到使用jzlib询问同事的具体原因,但可以肯定的是,在多处理器系统上的JRE 1.4中,使用java.util.zip确实存在错误,虽然没有人能具体地告诉我是哪一个。从那时起,我们一直在使用jzlib,它已经运行了很多年。很可能已经修好了。尽管如此,使用java.util.zip处理我的简单测试数据的方式与jzlib失败的方式相同,这是真的。是的,根据要压缩的数据,jzlib中是否存在明显的错误,我已经向JCraft报告了。是的,根据要压缩的数据,jzlib中是否存在明显的错误,我已经向JCraft报告了。