RFR: 8356439: Rename JavaLangAccess::*NoRepl methods
Roger Riggs
rriggs at openjdk.org
Tue Jul 29 14:26:56 UTC 2025
On Mon, 21 Jul 2025 12:10:51 GMT, Volkan Yazici <vyazici at openjdk.org> wrote:
> `NoRepl`-suffixed `String` methods denote methods that do not replace invalid characters, but throw `CharacterCodingException` on encounter. This behavior cannot easily be derived from the method footprints, has been a source of confusion for maintainers, and is not uniformly adopted, e.g., `newStringUTF8NoRepl()` and `getBytesUTF8NoRepl()` does *not* throw `CCE`. This PR removes `NoRepl` suffix from method names and consistently uses `throws CCE` in method footprints. (b4845109e18 passes `tier1,2`.)
src/java.base/share/classes/java/lang/String.java line 571:
> 569: }
> 570:
> 571: private static String utf8ThrowingIae(byte[] bytes, int offset, int length) {
Iae should be all-caps. `IAE`
src/java.base/share/classes/java/lang/String.java line 579:
> 577: }
> 578:
> 579: private static IllegalArgumentException cce2iae(CharacterCodingException cce) {
More readable would be "cceToIAE"
But this whole construct is suspect because of the contortions needed.
src/java.base/share/classes/java/lang/String.java line 1289:
> 1287: }
> 1288:
> 1289: private static void throwMalformed(byte[] val) throws MalformedInputException {
It is unnecessary to add add @throws of RuntimeExceptions, conventionally they are omitted as clutter and any RuntimeException can be thrown at any time.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26413#discussion_r2237974608
PR Review Comment: https://git.openjdk.org/jdk/pull/26413#discussion_r2239826290
PR Review Comment: https://git.openjdk.org/jdk/pull/26413#discussion_r2239865577
More information about the core-libs-dev
mailing list