[JDK-6341887] RFR: Patch V3: java.util.zip: Add ByteBuffer methods to Inflater/Deflater
Xueming Shen
xueming.shen at oracle.com
Wed Apr 11 03:49:01 UTC 2018
Hi David,
The CSR has been approved
https://bugs.openjdk.java.net/browse/JDK-8200527
API docs have been updated slightly based on the review suggestion.
(1) added some words in the class spec for both Inflater and Deflater.
|*<p>
* This class deflates sequences of bytes into ZLIB compressed data format.
* The input byte sequence is provided in either byte array or byte buffer,
* via one of the {@code setInput()} methods. The output byte sequence is
* written to the output byte array or byte buffer passed to the
* {@code deflate()} methods.
*<p>|
|*<p>
* This class inflates sequences of ZLIB compressed bytes. The input byte
* sequence is provided in either byte array or byte buffer, via one of the
* {@code setInput()} methods. The output byte sequence is written to the
* output byte array or byte buffer passed to the {@code deflate()} methods.
*<p>|
(2) adjusted the workding a little for those setInput() methods
| *<p>
* One of the {@code setInput()} methods should be called whenever
* {@code needsInput()} returns true indicating that more input data
* is required.
*<p>|
Two issues have been noticed when running tier1/2/3 tests
(1) there is a error at ln#Inflater.c#243, the "input" is being released
instead of "output"
http://cr.openjdk.java.net/~sherman/6341887.David.Lloyd/webrev.00/src/java.base/share/native/libzip/Inflater.c.sdiff.html
which triggered crash for some tests. fixed.
(2) sun/nio/ch/TestMaxCachedBufferSize.java failed "because of" the
"defaultBuf"
uses direct ByteBuffer. This is probably the issue of the test but
I simply update
the "defaultBuf" to be the heap buffer/0, instead of touch the
failed test case.
I don't have problem if you prefer to "fix" the test and keep the
"defaultBuf" as
direct buffer instead.
// static final ByteBuffer defaultBuf = ByteBuffer.allocateDirect(0);
static final ByteBuffer defaultBuf = ByteBuffer.allocate(0);
(3) I also updated test/jdk/java/util/zip/DeInflate.java with more tests
for the new APIs.
More tests might be desired though.
The latest webrev is at
http://cr.openjdk.java.net/~sherman/6341887.David.Lloyd/webrev/
Thanks,
Sherman
More information about the core-libs-dev
mailing list