> 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.
Eirik Bjørsnøs has updated the pull request incrementally with one additional commit since the last revision: Remove comment referring to decoder() which is now inaccessible in the subclass ------------- Changes: - all: https://git.openjdk.org/jdk/pull/30640/files - new: https://git.openjdk.org/jdk/pull/30640/files/76d4ac64..17ee8af9 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=30640&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=30640&range=01-02 Stats: 2 lines in 1 file changed: 0 ins; 2 del; 0 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
