RFR: 8307403: java/util/zip/DeInflate.java timed out
Volker Simonis
simonis at openjdk.org
Mon May 15 15:13:49 UTC 2023
On Fri, 12 May 2023 12:47:28 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:
> Can I please get a review of this test only change which addresses the issue noted in https://bugs.openjdk.org/browse/JDK-8307403?
>
> When we recently did a change in https://bugs.openjdk.org/browse/JDK-8299748, there was a oversight that the `deflate.deflate(tempBuffer)` could potentially end up taking in a zero sized array. That would then mean the loop in which this `deflate` happens, would never exit leading to the test timing out.
> I've added additional details as a comment to the JBS issue https://bugs.openjdk.org/browse/JDK-8307403?focusedCommentId=14581202&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14581202.
>
> The commit in this PR uses a fixed size temporary buffer, unrelated to the input length, to get past this problem. The use of fixed size here will not re-introduce the original issue which https://bugs.openjdk.org/browse/JDK-8299748 fixed, because unlike previously, this is just a temporary size and we continue to deflate the content into a dynamically growing `ByteArrayOutputStream` till the deflater is "finished".
>
> Additionally I've added a log message to help debug any future issues in this call.
Looks good except the comment below.
test/jdk/java/util/zip/DeInflate.java line 146:
> 144: def.finish();
> 145:
> 146: try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
I don't think this is really required because the `ByteArrayOutputStream` will grow dynamically anyway, even if initialized to zero but for all other cases `len` is probably a better estimation than the default size of `32`. But I leave it up to you if you want to change it back.
-------------
Marked as reviewed by simonis (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/13955#pullrequestreview-1426788585
PR Review Comment: https://git.openjdk.org/jdk/pull/13955#discussion_r1193983220
More information about the core-libs-dev
mailing list