RFR: 8351740: Clean up some code around initialization of encoding properties
Naoto Sato
naoto at openjdk.org
Mon Apr 7 17:26:03 UTC 2025
On Fri, 4 Apr 2025 23:42:26 GMT, Stuart Marks <smarks at openjdk.org> wrote:
> Some of the code that creates various encoding properties at JVM initialization time, such as file.encoding and native.encoding, could use some cleaning up. Cleanup is fairly minimal and should be mostly behavior-preserving. Changes include the following:
>
> * In the java_props.h and java_props_md.c files, add documentation and asserts that the sprops.encoding and sprops.sun_jnu_encoding members are always set to non-NULL by the platform-specific code.
>
> * In SystemProps.java, remove a null check that is now extraneous based on the above assertion.
>
> * In SystemProps.java, rearrange logic (with no behavior change) around handling of the "COMPAT" value for the file.encoding property.
>
> * In SystemProps.Raw, rename the platform properties array index from _file_encoding_NDX to _native_encoding_NDX.
>
> * In SystemProps.Raw.cmdProperties(), adjust the HashMap size computation. This should actually avoid resizing of the HashMap (unlike the earlier code).
>
> * Adjust various comments in several places for clarity and correctness.
Thanks for the clean-up. Changing the index name from `_file_encoding_NDX` to `_native_encoding_NDX` really helps.
src/java.base/share/native/libjava/System.c line 153:
> 151: /*
> 152: * Since sun_jnu_encoding is now hard-coded to UTF-8 on Mac, we don't
> 153: * want to use it to overwrite file.encoding
This `file.encoding` can also be renamed. Should have been done with JEP 400
-------------
PR Review: https://git.openjdk.org/jdk/pull/24463#pullrequestreview-2747544328
PR Review Comment: https://git.openjdk.org/jdk/pull/24463#discussion_r2031675274
More information about the core-libs-dev
mailing list