> This PR reorganizes `java.util.zip.ZipCoder` class hierarchies to handle > UTF-8 in the base class and move support for general charsets down to a > subclass. This better reflects reality where most ZIP files are encoded using > UTF-8. > > The motivation can be summarized as: > > * Supporting the common case in the base class and the exceptional case in a > subclass seems more natural and intuitive for maintainers > * We avoid loading both classes for most JVM instances > * A small performance improvement is observed, probably caused by unlocking > effecively-monomorphic JVM optimizations > > See core-libs-dev discussion for details: > https://mail.openjdk.org/pipermail/core-libs-dev/2026-January/158281.html > > I have tried to not move methods around too much, making the side-by-side > diff when ignoring whitespace easier to review. We can discuss further > cleanups and reorganizaton if so desired. > > It may be useful to review commits individually. The first commit fe4a627 > moves some methods out the way for the second commit 2926398. > > This PR also includes the similar change to the `ZipFileSystem` > implementation of ZipCoder to keep these aligned. Could be pulled out to a > separate PR if reviewers want to focus on a single area per PR. > > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
Eirik Bjørsnøs has updated the pull request incrementally with one additional commit since the last revision: Make fields 'UTF8_INSTANCE' and 'cs' fields final ------------- Changes: - all: https://git.openjdk.org/jdk/pull/30640/files - new: https://git.openjdk.org/jdk/pull/30640/files/17ee8af9..5616e145 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=30640&range=03 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=30640&range=02-03 Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.org/jdk/pull/30640.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/30640/head:pull/30640 PR: https://git.openjdk.org/jdk/pull/30640
