ZOutputStream の同じインスタンスに後で書き込まれたデータに応じて、jzlib 1.0.7 で特定の ArrayOutOfBoundException を生成する簡単なテスト ケースがあります。
スタックトレース:
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 にその後書き込まれるデータに依存します。
これを修正する方法のヒントはありますか?これについて聞いたことがありますか?