On Sat, 11 Apr 2026 08:51:35 GMT, Eirik Bjørsnøs <[email protected]> wrote:
>> 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 Looks good to me. Please change the copyright year, and add "noreg-cleanup" label to the JBS issue. src/java.base/share/classes/java/util/zip/ZipCoder.java line 179: > 177: .onMalformedInput(CodingErrorAction.REPORT) > 178: .onUnmappableCharacter(CodingErrorAction.REPORT); > 179: } We could use LazyConstant here (encoder as well), which can make the field final ------------- PR Review: https://git.openjdk.org/jdk/pull/30640#pullrequestreview-4101172649 PR Review Comment: https://git.openjdk.org/jdk/pull/30640#discussion_r3075136492
