> 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
