On Thu, 28 Aug 2025 19:25:10 GMT, Volkan Yazici <[email protected]> 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 replaces the `NoRepl` suffix with `NoReplacement` in method names
>> and consistently uses `throws CCE` in method footprints.
>
> Volkan Yazici has updated the pull request incrementally with two additional
> commits since the last revision:
>
> - Rename `NoReplacement` suffix to `OrThrow`
> - Simplify `encodeWithEncoder` and trim long lines
src/java.base/share/classes/java/lang/String.java line 707:
> 705: * @throws CharacterCodingException for malformed input or
> unmappable characters
> 706: */
> 707: private static String newStringUTF8OrThrow(byte[] bytes, int offset,
> int length)
Renaming to the OrThrow suffix is good, that really helps the use-sites, the
far away ones in particular.
src/java.base/share/classes/java/lang/String.java line 1434:
> 1432: * having to declare the exception
> 1433: */
> 1434: private static <E extends Exception> byte[] encodeUTF8_UTF16(byte[]
> val, Class<E> exceptionClass) throws E {
Would it be possible to add a brief method description to this method? It's the
equivalent of decoding val with the UTF-8 charset, then encoding the result
with the UTF-16 charset, right?
In passing, if rename exceptionClass to exClass then you'll get get some back
some of the horizontal space in several areas.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26413#discussion_r2309311930
PR Review Comment: https://git.openjdk.org/jdk/pull/26413#discussion_r2309310126