This looks good. Just a couple of comments:

* src/java.base/share/classes/java/util/TimeZone.java

698         props.setProperty("user.timezone", id);

This will only change the local copy of the property. I think you want to keep the original code which does a System.setProperty.

* src/java.base/share/classes/jdk/Version.java

This is not an issue in your changes, but the current javadoc for Version.current() says:

 266      * @throws  SecurityException
 267      *          If a security manager exists and its {@link
 268      *          SecurityManager#checkPropertyAccess(String)
269 * checkPropertyAccess} method does not allow access to the
 270      *          system property "java.version"

but this can never occur since the code is wrapping the call to System.getProperty("java.version") in doPrivileged, so the caller's permissions are never checked.

I think that this is a bug in the javadoc of this method and that it should not be specified to throw SecurityException. All code already has permission to read "java.version" in the default java.policy file. Can you file a followon bug to have this fixed?

Thanks,
Sean

On 05/01/2016 07:35 PM, Claes Redestad wrote:
Hi,

JDK-8154231 added methods to simplify access to system properties from
internal code, but after some discussion it's been decided to rename
these methods and document them to make it abundantly clear that they
are performing a privileged action and that care needs to be taken to
tread the input and output accordingly:

Webrev: http://cr.openjdk.java.net/~redestad/8155775/webrev.01
Bug: https://bugs.openjdk.java.net/browse/JDK-8155775

Thanks!

/Claes

Reply via email to