Codereview request for 7188852: Move implementation of De/Inflater.getBytesRead/Writtten() to java from native

Alan Bateman Alan.Bateman at
Fri Aug 3 18:16:59 UTC 2012

On 02/08/2012 22:59, Xueming Shen wrote:
> Hi
> This is the change to move the implementation of 
> De/Inflater.getBytesRead/Written()
> from native to Java. Current JDK implementation uses zlib's 
> z_stream.total_in/out fields,
> which are "uLong" type in original zlib source code. This may limit 
> these two counters
> to 4GB on 32-bit OS [1].  These two fields are currently patched to 
> "long long" in JDK to
> support the > 4G counting. It is suggested that it might be better to 
> move this > 4G
> counting support to java level to remove the dependency on patching 
> the original zlib
> source code, which might be critical in situation that Java runtime 
> prefers to use OS
> bundled zlib, instead of the JDK bundled zlib library.
> Here is the webrev
> The test case attached only tests upto 128M by default (for running in 
> auto testing).
> The test can be run manually with option "large" to test > 4G 
> de/inflating. It takes > 4
> minutes to compress/decompress 5G bytes on my linux box, guess it's 
> probably not
> desirable to hold each/every run for so long in auto setting.
I skimmed through this and the changes looks reasonable to me. The only 
thing is that ChangeLog_java is a bit confusing (to me anyway) and maybe 
it would be clearer it just have it list of the current changes to the 
zlib code.


More information about the core-libs-dev mailing list