On Thu, 29 Apr 2021 05:38:21 GMT, Iris Clark <[email protected]> wrote:
>> src/java.base/share/classes/java/lang/System.java line 704:
>>
>>> 702: * <tr><th scope="row">{@systemProperty native.encoding}</th>
>>> 703: * <td>Character encoding name derived from the host
>>> environment and/or
>>> 704: * the user's settings. Setting this system property has no
>>> effect.</td></tr>
>>
>> May be "This property is read-only" instead of "Setting this system property
>> has no effect" to not confuse with "user's settings"?
>
> I suspect that if setProperty("native.encoding", "foo") succeeds, then it
> will return "foo". I also believe that a later invocation of
> getProperty("native.encoding") will also return "foo". If that's the case,
> then I don't think that the "read-only" alternative phrasing is correct. To
> me, the alternative suggests that an error will be return if there is an
> attempt to set it or that the potential new value will be ignored. The "no
> effect" phrasing avoids this problem. I also suspect that the "no effect"
> phrasing was selected to align with the apiNote in lines 719-721.
Thanks, Joe and Iris. I agree with Iris and that's the reason I chose the
description. System properties are inherently mutable. There are some
"protected" ones, by that I mean a private copy is made just after
initialization for VM use, which is not affected by later setProperty() calls.
But I don't think this new property should be treated as such.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3777