RFR: 8377461: Add ZipFile test for incorrect number of entries reported in ENDTOT

Lance Andersen lancea at openjdk.org
Mon Feb 9 21:27:36 UTC 2026


On Mon, 9 Feb 2026 12:27:31 GMT, Eirik Bjørsnøs <eirbjo at openjdk.org> wrote:

> Please review this PR introducing a test to verify that `ZipFile::size` reports the actual number of CEN entries in a ZIP file, despite an incorrect number being reported in the END header.
> 
> Background:
> 
> The `ZipFile` implementation treats `ENDTOT` as an indication, but falls back to counting CEN entries if this number is too low. After parsing the CEN, there is also code to adjust the total down to the actual count of CEN entries.
> 
> The behavior of always reporting the actual number of CEN entries has no current test coverage in the JDK. It seems good to have tests excercising these code paths and protecting against regressions in this area.
> 
> Verification:
> 
> Verified that the new test catches introduced regressions in handling over- and underreported numbers in ENDTOT and that no existing test catches such regressions.
> 
> Test-only change, `noreg-self`.

Thanks for Tackling this Eirik.

A couple minor comments below.

A follow one would be to  also check:

4.3.15 Zip64 end of central directory locator

but can be a follow on project

test/jdk/java/util/zip/ZipFile/IncorrectEndTot.java line 2:

> 1: /*
> 2:  * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.

I believe this is a new Test so 2026 is what we need for the copyright

test/jdk/java/util/zip/ZipFile/IncorrectEndTot.java line 60:

> 58:                 Arguments.of(10, 11), // CEN has one less than ENDTOT
> 59:                 Arguments.of(11, 10), // CEN has one more than ENDTOT
> 60:                 Arguments.of(0, 10)   // No CEN entries (empty ZIP)

Should you include Arguments.of(0, 0) to test an empty ZIP?

-------------

PR Review: https://git.openjdk.org/jdk/pull/29635#pullrequestreview-3774857487
PR Review Comment: https://git.openjdk.org/jdk/pull/29635#discussion_r2784113108
PR Review Comment: https://git.openjdk.org/jdk/pull/29635#discussion_r2784427229


More information about the core-libs-dev mailing list