Hi Alan,
Updated webrev in place:
http://cr.openjdk.java.net/~rriggs/webrev-static-property-8066709/
On 6/4/2018 12:21 PM, Alan Bateman wrote:
On 04/06/2018 14:32, Roger Riggs 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
Can the @apiNote be split up so that the list of 4 properties moves to
an @implNote? Also "changing any standard property" may need
clarification as it can mean both changing a system property in a
running VM and also changing it by starting the VM with a value for
one of these properties.
ok, will clarify that setting the properties using setProperty or the
getProperties().set() methods after initialization
may have unpredictable effects.
I think I agree with Max on finding another name for the internal
class as it is a class to get the original value of a few critical
properties. Also I think we need to look at other ways to do the
initialization, maybe in conjunction with VM.saveAndRemoveProperties
so that we are saving the initial values of properties in one place.
There is a future, more comprehensive change that will address a more
consistent model for system properties.
For now the task is to reduce the impact of inadvisable programmatic
setting of standard system properties
for a few of the most (likely to be) abused properties.
Are the changes to SocksSocketImpl correct? I may have missed
something but the original called System.getProperty("user.dir") in a
privileged block so I'm wondering if getUserNameChecked is needed.
The existing code in SocksSocketImpl is inconsistent with respect to
access to user.name; some flows
use doPriv to access the property and others did not. If someone
familiar with the Socks networking function
can recommend the proper access, it can be revised. The intent was to
have the same security checks
as before.
The static USER_DIR can be dropped from WindowsFileSystemProvider as
there is only one instance of the provider.
ok
The other usages look okay to me.
Thanks, Roger
-Alan