RFR: 8378759: Make ZipFile.CleanableResource.inflaterCache field final [v2]
Eirik Bjørsnøs
eirbjo at openjdk.org
Thu Feb 26 13:39:51 UTC 2026
> Please review this cleanup PR where we simplify synchronization on ZipFile's inflater cache.
>
> Currently, the `ZipFile.CleanableResource.inflaterCache` field is non-final, is used in synchronization and is set to `null` to indicate a closed inflater cache. This complicates the state considerations for synchronization, requiring double-checking that the cache does not close under us. Generally, correctness of synchronizing on a non-final field which can also be null is hard to reason about.
>
> This PR marks the `inflaterCache` field as `final` and introduces a boolean flag field to model the closed state explicitly. This allows synchronization to be simplified, double-checking to be removed and the closed state to be more obvious. If we want the future ZipFile to be less mutable, this is one step in that direction.
>
> Cleanup refactoring, `noreg-cleanup`
Eirik Bjørsnøs has updated the pull request incrementally with one additional commit since the last revision:
Reduce memory retained by a closed ZipFile
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/29937/files
- new: https://git.openjdk.org/jdk/pull/29937/files/a73afcae..6b9d8f98
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=29937&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=29937&range=00-01
Stats: 4 lines in 1 file changed: 2 ins; 0 del; 2 mod
Patch: https://git.openjdk.org/jdk/pull/29937.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/29937/head:pull/29937
PR: https://git.openjdk.org/jdk/pull/29937
More information about the core-libs-dev
mailing list