Hi Joe,

The CSR text is still in draft and got out of sync with the open review and comments.

The updated apiNote clarifies that changes made through the System.*property*  methods
may not affect the value cached during initialization.
The implementation changes affect a very short list of properties.

The note on the methods is to raise awareness that individual properties may have
different behavior and may be unpredictable.

On 6/12/2018 10:10 PM, Weijun Wang wrote:
In fact, why is setting user.name and user.home always evil? If I only want to set them 
on the command line so that a special "user environment" is used, why is it a 
problem?
There is no change to the ability to set properties on the command line.
The concern is with the predictability of (some) properties changing dynamically while the application
is running.

The property user.home is used for mime-types and mailcap files and user.name is used in some
networking cases where a username is needed.

In fact, we have a test setting user.home to an empty directory to avoid 
unexpected result because we cannot control the test runner's home directory.
Right, there is no problem with that

Regards, Roger

Thanks
Max

On Jun 13, 2018, at 9:59 AM, Weijun Wang <weijun.w...@oracle.com> wrote:

Hi Roger

1. Should all occurrences of reading of these system properties be updated? For 
example, the following one is not touched
  
http://hg.openjdk.java.net/jdk/jdk/file/4d2e3f5abb48/src/java.base/share/classes/sun/security/tools/keytool/Main.java#l842
That usage was in a tool and I did not modify any tools.

2. I assume that with this change not only there is no use calling 
System.setProperty() in the application but also setting it on the command line 
is now useless. Is this right? Do we need to make this clear in the CSR?
No change to command line setting of properties.

Roger


Thanks
Max


On Jun 4, 2018, at 9:32 PM, Roger Riggs <roger.ri...@oracle.com> wrote:

Please review a change to make the values of java.home, user.home, user.dir, 
and user.name
effectively read-only for internal use.  The values are cached during 
initialization and the
cached values are used.

Webrev:
  http://cr.openjdk.java.net/~rriggs/webrev-static-property-8066709/

Issue:
  https://bugs.openjdk.java.net/browse/JDK-8066709

CSR:
  https://bugs.openjdk.java.net/browse/JDK-8204235

Thanks, Roger



Reply via email to