On Thu, 29 Apr 2021 05:38:21 GMT, Iris Clark <i...@openjdk.org> 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