On Thu, 9 Apr 2026 19:47:06 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: > > Remove comment referring to decoder() which is now inaccessible in the > subclass src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipCoder.java line 77: > 75: static class CharsetZipCoder extends ZipCoder { > 76: > 77: static CharsetZipCoder UTF8_INSTANCE = new CharsetZipCoder(UTF_8); Shouldn't it be `final` ? Suggestion: static final CharsetZipCoder UTF8_INSTANCE = new CharsetZipCoder(UTF_8); ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/30640#discussion_r3064109837
