CodecPool.returnDecompressor() internally calls decompressor.reset(). Wouldn't this also potentially access the underlying I/O stream?
No, Decompressor.reset() clears its state so that it can be reused to decompress another stream of input. A bug in a similar nature is
I didn't get why these 2 should be same. As default BUFSIZE is 8K, we just need some number > 8k and the testcase is using 10000. Isn't this OK ? Any issues ? Just to be on the safer side, if you want it to be increased to a bigger value like 32K(from 10000), I can do so. Do you see any gain because of having these 2 same ?
That is fine too. I would even prefer to have the code to reflect the nature that the buffer size must be no less than the mark limit through something like: bis.mark(Math.min(BUFSIZE, 10000)).
Can we modify the testcase to make use of RewindableInputStream? Rumen actually uses RewindableInputStream to take care of this mark/reset business.
That is also fine with me.
This was already incorporated in my latest patch 1925.v1.1.patch.