RFR: 8365703: Refactor ZipCoder to use common JLA.uncheckedNewStringNoRepl
Volkan Yazici
vyazici at openjdk.org
Tue Aug 19 15:09:53 UTC 2025
On Mon, 18 Aug 2025 15:31:21 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
> Simplify JLA by changing ZipCoder to use JLA.uncheckedNewStringNoRepl(byte[] bytes, Charset cs) instead of the JLA.newStringUTF8NoRepl.
> A copy of the bytes is made so it can be exclusively used to create the string. The "shared" flag is no longer needed in String.newStringUTF8NoRepl.
src/java.base/share/classes/java/util/zip/ZipCoder.java line 283:
> 281: // We use the JLA.newStringUTF8NoRepl variant to throw
> 282: // exceptions eagerly when opening ZipFiles
> 283: return hash(toString(a, off, len));
Earlier, `byte[]` was shared by the `String` instantiated, now it needs to be cloned. That is, I presume this to have a performance implication. Was this considered?
src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java line 361:
> 359: * @throws IllegalArgumentException for malformed or unmappable bytes.
> 360: */
> 361: String newStringUTF8NoRepl(byte[] bytes, int off, int len);
One less hole in the JLA, nice! 💯
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26822#discussion_r2284136776
PR Review Comment: https://git.openjdk.org/jdk/pull/26822#discussion_r2284141237
More information about the core-libs-dev
mailing list