# HG changeset patch # User redestad # Date 1461238793 -7200 # Node ID 824750ada3d628dac892935f947b1c2cedd954c5 # Parent c80f098887f4fa0bdcd1ee0a550771c2bfb00a73 8154231: Simplify access to System properties from JDK code Reviewed-by: rriggs, chegar, weijun diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystemProvider.java --- a/jdk/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystemProvider.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystemProvider.java Thu Apr 21 13:39:53 2016 +0200 @@ -102,8 +102,8 @@ @Override FileTypeDetector getFileTypeDetector() { - Path userMimeTypes = Paths.get(AccessController.doPrivileged( - new GetPropertyAction("user.home")), ".mime.types"); + String userHome = GetPropertyAction.getProperty("user.home"); + Path userMimeTypes = Paths.get(userHome, ".mime.types"); Path etcMimeTypes = Paths.get("/etc/mime.types"); return chain(new GioFileTypeDetector(), diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java --- a/jdk/src/java.base/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java Thu Apr 21 13:39:53 2016 +0200 @@ -32,9 +32,9 @@ package sun.nio.ch; import java.io.IOException; -import java.io.FileDescriptor; import java.util.Iterator; import java.util.LinkedList; +import sun.security.action.GetPropertyAction; /* * struct kevent { // 32-bit 64-bit @@ -84,10 +84,8 @@ static { IOUtil.load(); initStructSizes(); - String datamodel = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("sun.arch.data.model") - ); - is64bit = datamodel.equals("64"); + String datamodel = GetPropertyAction.getProperty("sun.arch.data.model"); + is64bit = "64".equals(datamodel); } KQueueArrayWrapper() { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/macosx/classes/sun/nio/fs/MacOSXFileSystemProvider.java --- a/jdk/src/java.base/macosx/classes/sun/nio/fs/MacOSXFileSystemProvider.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/macosx/classes/sun/nio/fs/MacOSXFileSystemProvider.java Thu Apr 21 13:39:53 2016 +0200 @@ -28,7 +28,6 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.spi.FileTypeDetector; -import java.security.AccessController; import sun.security.action.GetPropertyAction; /** @@ -47,8 +46,8 @@ @Override FileTypeDetector getFileTypeDetector() { - Path userMimeTypes = Paths.get(AccessController.doPrivileged( - new GetPropertyAction("user.home")), ".mime.types"); + Path userMimeTypes = Paths.get( + GetPropertyAction.getProperty("user.home"), ".mime.types"); return chain(new MimeTypesFileTypeDetector(userMimeTypes), new UTIFileTypeDetector()); diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/io/File.java --- a/jdk/src/java.base/share/classes/java/io/File.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/io/File.java Thu Apr 21 13:39:53 2016 +0200 @@ -31,7 +31,6 @@ import java.net.URISyntaxException; import java.util.List; import java.util.ArrayList; -import java.security.AccessController; import java.security.SecureRandom; import java.nio.file.Path; import java.nio.file.FileSystems; @@ -1896,8 +1895,8 @@ private TempDirectory() { } // temporary directory location - private static final File tmpdir = new File(AccessController - .doPrivileged(new GetPropertyAction("java.io.tmpdir"))); + private static final File tmpdir = new File( + GetPropertyAction.getProperty("java.io.tmpdir")); static File location() { return tmpdir; } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/lang/ProcessBuilder.java --- a/jdk/src/java.base/share/classes/java/lang/ProcessBuilder.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/lang/ProcessBuilder.java Thu Apr 21 13:39:53 2016 +0200 @@ -30,13 +30,12 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.nio.channels.Pipe; import java.util.Arrays; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.security.AccessController; -import java.security.PrivilegedAction; +import sun.security.action.GetPropertyAction; + /** * This class is used to create operating system processes. * @@ -468,11 +467,9 @@ * @since 1.7 */ public abstract static class Redirect { - private static final File NULL_FILE = AccessController.doPrivileged( - (PrivilegedAction) () -> { - return new File((System.getProperty("os.name") - .startsWith("Windows") ? "NUL" : "/dev/null")); - } + private static final File NULL_FILE = new File( + (GetPropertyAction.getProperty("os.name") + .startsWith("Windows") ? "NUL" : "/dev/null") ); /** diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/lang/StackStreamFactory.java --- a/jdk/src/java.base/share/classes/java/lang/StackStreamFactory.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/lang/StackStreamFactory.java Thu Apr 21 13:39:53 2016 +0200 @@ -30,8 +30,6 @@ import java.lang.annotation.Native; import java.lang.reflect.Method; -import java.security.AccessController; -import java.security.PrivilegedAction; import java.util.HashSet; import java.util.NoSuchElementException; import java.util.Objects; @@ -41,6 +39,7 @@ import java.util.function.Function; import java.util.stream.Stream; import java.util.stream.StreamSupport; +import sun.security.action.GetPropertyAction; import static java.lang.StackStreamFactory.WalkerState.*; @@ -990,14 +989,9 @@ } private static boolean getProperty(String key, boolean value) { - String s = AccessController.doPrivileged(new PrivilegedAction<>() { - @Override - public String run() { - return System.getProperty(key); - } - }); + String s = GetPropertyAction.getProperty(key); if (s != null) { - return Boolean.valueOf(s); + return Boolean.parseBoolean(s); } return value; } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java --- a/jdk/src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java Thu Apr 21 13:39:53 2016 +0200 @@ -88,8 +88,7 @@ static { final String key = "jdk.internal.lambda.dumpProxyClasses"; - String path = AccessController.doPrivileged( - new GetPropertyAction(key)); + String path = GetPropertyAction.getProperty(key); dumper = (null == path) ? null : ProxyClassesDumper.getInstance(path); } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleStatics.java --- a/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleStatics.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleStatics.java Thu Apr 21 13:39:53 2016 +0200 @@ -25,9 +25,9 @@ package java.lang.invoke; -import java.security.AccessController; -import java.security.PrivilegedAction; +import java.util.Properties; import jdk.internal.misc.Unsafe; +import sun.security.action.GetPropertyAction; /** * This class consists exclusively of static names internal to the @@ -53,32 +53,27 @@ static final boolean VAR_HANDLE_GUARDS; static { - final Object[] values = new Object[10]; - AccessController.doPrivileged(new PrivilegedAction<>() { - public Void run() { - values[0] = Boolean.getBoolean("java.lang.invoke.MethodHandle.DEBUG_NAMES"); - values[1] = Boolean.getBoolean("java.lang.invoke.MethodHandle.DUMP_CLASS_FILES"); - values[2] = Boolean.getBoolean("java.lang.invoke.MethodHandle.TRACE_INTERPRETER"); - values[3] = Boolean.getBoolean("java.lang.invoke.MethodHandle.TRACE_METHOD_LINKAGE"); - values[4] = Integer.getInteger("java.lang.invoke.MethodHandle.COMPILE_THRESHOLD", 0); - values[5] = Integer.getInteger("java.lang.invoke.MethodHandle.DONT_INLINE_THRESHOLD", 30); - values[6] = Integer.getInteger("java.lang.invoke.MethodHandle.PROFILE_LEVEL", 0); - values[7] = Boolean.parseBoolean(System.getProperty("java.lang.invoke.MethodHandle.PROFILE_GWT", "true")); - values[8] = Integer.getInteger("java.lang.invoke.MethodHandle.CUSTOMIZE_THRESHOLD", 127); - values[9] = Boolean.parseBoolean(System.getProperty("java.lang.invoke.VarHandle.VAR_HANDLE_GUARDS", "true")); - return null; - } - }); - DEBUG_METHOD_HANDLE_NAMES = (Boolean) values[0]; - DUMP_CLASS_FILES = (Boolean) values[1]; - TRACE_INTERPRETER = (Boolean) values[2]; - TRACE_METHOD_LINKAGE = (Boolean) values[3]; - COMPILE_THRESHOLD = (Integer) values[4]; - DONT_INLINE_THRESHOLD = (Integer) values[5]; - PROFILE_LEVEL = (Integer) values[6]; - PROFILE_GWT = (Boolean) values[7]; - CUSTOMIZE_THRESHOLD = (Integer) values[8]; - VAR_HANDLE_GUARDS = (Boolean) values[9]; + Properties props = GetPropertyAction.getProperties(); + DEBUG_METHOD_HANDLE_NAMES = Boolean.parseBoolean( + props.getProperty("java.lang.invoke.MethodHandle.DEBUG_NAMES")); + DUMP_CLASS_FILES = Boolean.parseBoolean( + props.getProperty("java.lang.invoke.MethodHandle.DUMP_CLASS_FILES")); + TRACE_INTERPRETER = Boolean.parseBoolean( + props.getProperty("java.lang.invoke.MethodHandle.TRACE_INTERPRETER")); + TRACE_METHOD_LINKAGE = Boolean.parseBoolean( + props.getProperty("java.lang.invoke.MethodHandle.TRACE_METHOD_LINKAGE")); + COMPILE_THRESHOLD = Integer.parseInt( + props.getProperty("java.lang.invoke.MethodHandle.COMPILE_THRESHOLD", "0")); + DONT_INLINE_THRESHOLD = Integer.parseInt( + props.getProperty("java.lang.invoke.MethodHandle.DONT_INLINE_THRESHOLD", "30")); + PROFILE_LEVEL = Integer.parseInt( + props.getProperty("java.lang.invoke.MethodHandle.PROFILE_LEVEL", "0")); + PROFILE_GWT = Boolean.parseBoolean( + props.getProperty("java.lang.invoke.MethodHandle.PROFILE_GWT", "true")); + CUSTOMIZE_THRESHOLD = Integer.parseInt( + props.getProperty("java.lang.invoke.MethodHandle.CUSTOMIZE_THRESHOLD", "127")); + VAR_HANDLE_GUARDS = Boolean.parseBoolean( + props.getProperty("java.lang.invoke.VarHandle.VAR_HANDLE_GUARDS", "true")); if (CUSTOMIZE_THRESHOLD < -1 || CUSTOMIZE_THRESHOLD > 127) { throw newInternalError("CUSTOMIZE_THRESHOLD should be in [-1...127] range"); diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java --- a/jdk/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java Thu Apr 21 13:39:53 2016 +0200 @@ -33,7 +33,6 @@ import jdk.internal.misc.Unsafe; import java.lang.invoke.MethodHandles.Lookup; -import java.security.AccessController; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -188,14 +187,15 @@ private static final ProxyClassesDumper DUMPER; static { - final String strategy = AccessController.doPrivileged( - new GetPropertyAction("java.lang.invoke.stringConcat")); - CACHE_ENABLE = Boolean.parseBoolean(AccessController.doPrivileged( - new GetPropertyAction("java.lang.invoke.stringConcat.cache"))); - DEBUG = Boolean.parseBoolean(AccessController.doPrivileged( - new GetPropertyAction("java.lang.invoke.stringConcat.debug"))); - final String dumpPath = AccessController.doPrivileged( - new GetPropertyAction("java.lang.invoke.stringConcat.dumpClasses")); + Properties props = GetPropertyAction.getProperties(); + final String strategy = + props.getProperty("java.lang.invoke.stringConcat"); + CACHE_ENABLE = Boolean.parseBoolean( + props.getProperty("java.lang.invoke.stringConcat.cache")); + DEBUG = Boolean.parseBoolean( + props.getProperty("java.lang.invoke.stringConcat.debug")); + final String dumpPath = + props.getProperty("java.lang.invoke.stringConcat.dumpClasses"); STRATEGY = (strategy == null) ? DEFAULT_STRATEGY : Strategy.valueOf(strategy); CACHE = CACHE_ENABLE ? new ConcurrentHashMap<>() : null; diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/lang/module/ModuleFinder.java --- a/jdk/src/java.base/share/classes/java/lang/module/ModuleFinder.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/lang/module/ModuleFinder.java Thu Apr 21 13:39:53 2016 +0200 @@ -39,6 +39,7 @@ import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; +import sun.security.action.GetPropertyAction; /** * A finder of modules. A {@code ModuleFinder} is used to find modules during @@ -152,7 +153,7 @@ SecurityManager sm = System.getSecurityManager(); if (sm != null) { - PrivilegedAction pa = () -> System.getProperty("java.home"); + PrivilegedAction pa = new GetPropertyAction("java.home"); home = AccessController.doPrivileged(pa); Permission p = new FilePermission(home + File.separator + "-", "read"); sm.checkPermission(p); diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/lang/reflect/Proxy.java --- a/jdk/src/java.base/share/classes/java/lang/reflect/Proxy.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/lang/reflect/Proxy.java Thu Apr 21 13:39:53 2016 +0200 @@ -50,6 +50,7 @@ import jdk.internal.reflect.CallerSensitive; import jdk.internal.reflect.Reflection; import sun.reflect.misc.ReflectUtil; +import sun.security.action.GetPropertyAction; import sun.security.util.SecurityConstants; /** @@ -581,11 +582,7 @@ } private static final String DEBUG = - AccessController.doPrivileged(new PrivilegedAction<>() { - public String run() { - return System.getProperty("jdk.proxy.debug", ""); - } - }); + GetPropertyAction.getProperty("jdk.proxy.debug", ""); private static boolean isDebug() { return !DEBUG.isEmpty(); diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/net/AbstractPlainDatagramSocketImpl.java --- a/jdk/src/java.base/share/classes/java/net/AbstractPlainDatagramSocketImpl.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/net/AbstractPlainDatagramSocketImpl.java Thu Apr 21 13:39:53 2016 +0200 @@ -31,6 +31,7 @@ import java.util.Set; import java.util.HashSet; import java.util.Collections; +import sun.security.action.GetPropertyAction; /** * Abstract datagram and multicast socket implementation base class. @@ -51,9 +52,7 @@ protected InetAddress connectedAddress = null; private int connectedPort = -1; - private static final String os = AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("os.name") - ); + private static final String os = GetPropertyAction.getProperty("os.name"); /** * flag set if the native connect() call not to be used diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/net/InetAddress.java --- a/jdk/src/java.base/share/classes/java/net/InetAddress.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/net/InetAddress.java Thu Apr 21 13:39:53 2016 +0200 @@ -1123,8 +1123,8 @@ */ private static NameService createNameService() { - String hostsFileName = AccessController - .doPrivileged(new GetPropertyAction("jdk.net.hosts.file")); + String hostsFileName = + GetPropertyAction.getProperty("jdk.net.hosts.file"); NameService theNameService; if (hostsFileName != null) { theNameService = new HostsFileNameService(hostsFileName); @@ -1643,8 +1643,7 @@ * property can vary across implementations of the java. * classes. The default is an empty String "". */ - String prefix = AccessController.doPrivileged( - new GetPropertyAction("impl.prefix", "")); + String prefix = GetPropertyAction.getProperty("impl.prefix", ""); try { impl = Class.forName("java.net." + prefix + implName).newInstance(); } catch (ClassNotFoundException e) { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/net/SocksSocketImpl.java --- a/jdk/src/java.base/share/classes/java/net/SocksSocketImpl.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/net/SocksSocketImpl.java Thu Apr 21 13:39:53 2016 +0200 @@ -33,6 +33,7 @@ import sun.net.SocksProxy; import sun.net.spi.DefaultProxySelector; import sun.net.www.ParseUtil; +import sun.security.action.GetPropertyAction; /* import org.ietf.jgss.*; */ /** @@ -177,8 +178,7 @@ userName = pw.getUserName(); password = new String(pw.getPassword()); } else { - userName = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("user.name")); + userName = GetPropertyAction.getProperty("user.name"); } if (userName == null) return false; @@ -1088,8 +1088,7 @@ userName = System.getProperty("user.name"); } catch (SecurityException se) { /* swallow Exception */ } } else { - userName = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("user.name")); + userName = GetPropertyAction.getProperty("user.name"); } return userName; } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/net/URL.java --- a/jdk/src/java.base/share/classes/java/net/URL.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/net/URL.java Thu Apr 21 13:39:53 2016 +0200 @@ -42,6 +42,7 @@ import java.util.ServiceLoader; import sun.security.util.SecurityConstants; +import sun.security.action.GetPropertyAction; /** * Class {@code URL} represents a Uniform Resource @@ -1210,12 +1211,8 @@ } private static URLStreamHandler lookupViaProperty(String protocol) { - String packagePrefixList = java.security.AccessController.doPrivileged( - new PrivilegedAction<>() { - public String run() { - return System.getProperty(protocolPathProp, null); - } - }); + String packagePrefixList = + GetPropertyAction.getProperty(protocolPathProp); if (packagePrefixList == null) { // not set return null; diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/net/URLConnection.java --- a/jdk/src/java.base/share/classes/java/net/URLConnection.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/net/URLConnection.java Thu Apr 21 13:39:53 2016 +0200 @@ -43,6 +43,7 @@ import java.security.AccessController; import sun.security.util.SecurityConstants; import sun.net.www.MessageHeader; +import sun.security.action.GetPropertyAction; /** * The abstract class {@code URLConnection} is the superclass @@ -1395,8 +1396,8 @@ * is always the last one on the returned package list. */ private String getContentHandlerPkgPrefixes() { - String packagePrefixList = AccessController.doPrivileged( - new sun.security.action.GetPropertyAction(contentPathProp, "")); + String packagePrefixList = + GetPropertyAction.getProperty(contentPathProp, ""); if (packagePrefixList != "") { packagePrefixList += "|"; diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/net/URLEncoder.java --- a/jdk/src/java.base/share/classes/java/net/URLEncoder.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/net/URLEncoder.java Thu Apr 21 13:39:53 2016 +0200 @@ -25,19 +25,12 @@ package java.net; -import java.io.ByteArrayOutputStream; -import java.io.BufferedWriter; -import java.io.OutputStreamWriter; -import java.io.IOException; import java.io.UnsupportedEncodingException; import java.io.CharArrayWriter; import java.nio.charset.Charset; import java.nio.charset.IllegalCharsetNameException; import java.nio.charset.UnsupportedCharsetException ; import java.util.BitSet; -import java.security.AccessController; -import java.security.PrivilegedAction; -import sun.security.action.GetBooleanAction; import sun.security.action.GetPropertyAction; /** @@ -140,9 +133,7 @@ dontNeedEncoding.set('.'); dontNeedEncoding.set('*'); - dfltEncName = AccessController.doPrivileged( - new GetPropertyAction("file.encoding") - ); + dfltEncName = GetPropertyAction.getProperty("file.encoding"); } /** diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/nio/charset/Charset.java --- a/jdk/src/java.base/share/classes/java/nio/charset/Charset.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/nio/charset/Charset.java Thu Apr 21 13:39:53 2016 +0200 @@ -283,8 +283,8 @@ if (level == null) { if (!VM.isBooted()) return false; - bugLevel = level = AccessController.doPrivileged( - new GetPropertyAction("sun.nio.cs.bugLevel", "")); + bugLevel = level = + GetPropertyAction.getProperty("sun.nio.cs.bugLevel", ""); } return level.equals(bl); } @@ -609,8 +609,7 @@ public static Charset defaultCharset() { if (defaultCharset == null) { synchronized (Charset.class) { - String csn = AccessController.doPrivileged( - new GetPropertyAction("file.encoding")); + String csn = GetPropertyAction.getProperty("file.encoding"); Charset cs = lookup(csn); if (cs != null) defaultCharset = cs; diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/nio/file/TempFileHelper.java --- a/jdk/src/java.base/share/classes/java/nio/file/TempFileHelper.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/nio/file/TempFileHelper.java Thu Apr 21 13:39:53 2016 +0200 @@ -28,7 +28,6 @@ import java.util.Set; import java.util.EnumSet; import java.security.SecureRandom; -import static java.security.AccessController.*; import java.io.IOException; import java.nio.file.attribute.FileAttribute; import java.nio.file.attribute.PosixFilePermission; @@ -47,7 +46,7 @@ // temporary directory location private static final Path tmpdir = - Paths.get(doPrivileged(new GetPropertyAction("java.io.tmpdir"))); + Paths.get(GetPropertyAction.getProperty("java.io.tmpdir")); private static final boolean isPosix = FileSystems.getDefault().supportedFileAttributeViews().contains("posix"); diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/util/Locale.java --- a/jdk/src/java.base/share/classes/java/util/Locale.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/util/Locale.java Thu Apr 21 13:39:53 2016 +0200 @@ -45,7 +45,6 @@ import java.io.ObjectOutputStream; import java.io.ObjectStreamField; import java.io.Serializable; -import java.security.AccessController; import java.text.MessageFormat; import java.util.spi.LocaleNameProvider; @@ -859,11 +858,10 @@ private static Locale initDefault() { String language, region, script, country, variant; - language = AccessController.doPrivileged( - new GetPropertyAction("user.language", "en")); + Properties props = GetPropertyAction.getProperties(); + language = props.getProperty("user.language", "en"); // for compatibility, check for old user.region property - region = AccessController.doPrivileged( - new GetPropertyAction("user.region")); + region = props.getProperty("user.region"); if (region != null) { // region can be of form country, country_variant, or _variant int i = region.indexOf('_'); @@ -876,27 +874,25 @@ } script = ""; } else { - script = AccessController.doPrivileged( - new GetPropertyAction("user.script", "")); - country = AccessController.doPrivileged( - new GetPropertyAction("user.country", "")); - variant = AccessController.doPrivileged( - new GetPropertyAction("user.variant", "")); + script = props.getProperty("user.script", ""); + country = props.getProperty("user.country", ""); + variant = props.getProperty("user.variant", ""); } return getInstance(language, script, country, variant, null); } private static Locale initDefault(Locale.Category category) { + Properties props = GetPropertyAction.getProperties(); return getInstance( - AccessController.doPrivileged( - new GetPropertyAction(category.languageKey, defaultLocale.getLanguage())), - AccessController.doPrivileged( - new GetPropertyAction(category.scriptKey, defaultLocale.getScript())), - AccessController.doPrivileged( - new GetPropertyAction(category.countryKey, defaultLocale.getCountry())), - AccessController.doPrivileged( - new GetPropertyAction(category.variantKey, defaultLocale.getVariant())), + props.getProperty(category.languageKey, + defaultLocale.getLanguage()), + props.getProperty(category.scriptKey, + defaultLocale.getScript()), + props.getProperty(category.countryKey, + defaultLocale.getCountry()), + props.getProperty(category.variantKey, + defaultLocale.getVariant()), null); } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/util/PropertyResourceBundle.java --- a/jdk/src/java.base/share/classes/java/util/PropertyResourceBundle.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/util/PropertyResourceBundle.java Thu Apr 21 13:39:53 2016 +0200 @@ -43,7 +43,6 @@ import java.io.InputStreamReader; import java.io.Reader; import java.io.IOException; -import java.nio.charset.Charset; import java.nio.charset.MalformedInputException; import java.nio.charset.StandardCharsets; import java.nio.charset.UnmappableCharacterException; @@ -142,8 +141,8 @@ // Check whether the strict encoding is specified. // The possible encoding is either "ISO-8859-1" or "UTF-8". private static final String encoding = - AccessController.doPrivileged( - new GetPropertyAction("java.util.PropertyResourceBundle.encoding", "")) + GetPropertyAction + .getProperty("java.util.PropertyResourceBundle.encoding", "") .toUpperCase(Locale.ROOT); /** diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/util/TimeZone.java --- a/jdk/src/java.base/share/classes/java/util/TimeZone.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/util/TimeZone.java Thu Apr 21 13:39:53 2016 +0200 @@ -660,14 +660,12 @@ private static synchronized TimeZone setDefaultZone() { TimeZone tz; // get the time zone ID from the system properties - String zoneID = AccessController.doPrivileged( - new GetPropertyAction("user.timezone")); + String zoneID = GetPropertyAction.getProperty("user.timezone"); // if the time zone ID is not set (yet), perform the // platform to Java time zone ID mapping. if (zoneID == null || zoneID.isEmpty()) { - String javaHome = AccessController.doPrivileged( - new GetPropertyAction("java.home")); + String javaHome = GetPropertyAction.getProperty("java.home"); try { zoneID = getSystemTimeZoneID(javaHome); if (zoneID == null) { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/util/jar/JarFile.java --- a/jdk/src/java.base/share/classes/java/util/jar/JarFile.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/util/jar/JarFile.java Thu Apr 21 13:39:53 2016 +0200 @@ -34,7 +34,6 @@ import java.util.zip.*; import java.security.CodeSigner; import java.security.cert.Certificate; -import java.security.AccessController; import java.security.CodeSource; import jdk.internal.misc.SharedSecrets; import sun.security.action.GetPropertyAction; @@ -155,16 +154,16 @@ BASE_VERSION = 8; // one less than lowest version for versioned entries int runtimeVersion = jdk.Version.current().major(); - String jarVersion = AccessController.doPrivileged( - new GetPropertyAction("jdk.util.jar.version")); + String jarVersion = + GetPropertyAction.getProperty("jdk.util.jar.version"); if (jarVersion != null) { int jarVer = Integer.parseInt(jarVersion); runtimeVersion = (jarVer > runtimeVersion) ? runtimeVersion : Math.max(jarVer, 0); } RUNTIME_VERSION = runtimeVersion; - String enableMultiRelease = AccessController.doPrivileged( - new GetPropertyAction("jdk.util.jar.enableMultiRelease", "true")); + String enableMultiRelease = GetPropertyAction + .getProperty("jdk.util.jar.enableMultiRelease", "true"); switch (enableMultiRelease) { case "true": default: diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/util/jar/Pack200.java --- a/jdk/src/java.base/share/classes/java/util/jar/Pack200.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/util/jar/Pack200.java Thu Apr 21 13:39:53 2016 +0200 @@ -29,6 +29,7 @@ import java.io.OutputStream; import java.io.File; import java.io.IOException; +import sun.security.action.GetPropertyAction; /** @@ -694,8 +695,7 @@ Class impl = (PACK_PROVIDER.equals(prop))? packerImpl: unpackerImpl; if (impl == null) { // The first time, we must decide which class to use. - implName = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction(prop,"")); + implName = GetPropertyAction.getProperty(prop,""); if (implName != null && !implName.equals("")) impl = Class.forName(implName); else if (PACK_PROVIDER.equals(prop)) diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/util/regex/PatternSyntaxException.java --- a/jdk/src/java.base/share/classes/java/util/regex/PatternSyntaxException.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/util/regex/PatternSyntaxException.java Thu Apr 21 13:39:53 2016 +0200 @@ -94,8 +94,7 @@ } private static final String nl = - java.security.AccessController - .doPrivileged(new GetPropertyAction("line.separator")); + GetPropertyAction.getProperty("line.separator"); /** * Returns a multi-line string containing the description of the syntax diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/java/util/zip/ZipOutputStream.java --- a/jdk/src/java.base/share/classes/java/util/zip/ZipOutputStream.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/java/util/zip/ZipOutputStream.java Thu Apr 21 13:39:53 2016 +0200 @@ -33,6 +33,7 @@ import java.util.HashSet; import static java.util.zip.ZipConstants64.*; import static java.util.zip.ZipUtils.*; +import sun.security.action.GetPropertyAction; /** * This class implements an output stream filter for writing files in the @@ -54,9 +55,7 @@ */ private static final boolean inhibitZip64 = Boolean.parseBoolean( - java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction( - "jdk.util.zip.inhibitZip64", "false"))); + GetPropertyAction.getProperty("jdk.util.zip.inhibitZip64")); private static class XEntry { final ZipEntry entry; diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java --- a/jdk/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java Thu Apr 21 13:39:53 2016 +0200 @@ -51,9 +51,9 @@ static final boolean DEBUG; static { - String s = java.security.AccessController.doPrivileged( - new GetPropertyAction("javax.net.debug", "")).toLowerCase( - Locale.ENGLISH); + String s = GetPropertyAction.getProperty("javax.net.debug", "") + .toLowerCase(Locale.ENGLISH); + DEBUG = s.contains("all") || s.contains("ssl"); } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/jdk/Version.java --- a/jdk/src/java.base/share/classes/jdk/Version.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/jdk/Version.java Thu Apr 21 13:39:53 2016 +0200 @@ -26,8 +26,6 @@ package jdk; import java.math.BigInteger; -import java.security.AccessController; -import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -35,6 +33,7 @@ import java.util.Collections; import java.util.List; import java.util.Optional; +import sun.security.action.GetPropertyAction; /** * A representation of the JDK version-string which contains a version @@ -274,12 +273,7 @@ */ public static Version current() { if (current == null) { - current = parse(AccessController.doPrivileged( - new PrivilegedAction<>() { - public String run() { - return System.getProperty("java.version"); - } - })); + current = parse(GetPropertyAction.getProperty("java.version")); } return current; } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/jdk/internal/loader/URLClassPath.java --- a/jdk/src/java.base/share/classes/jdk/internal/loader/URLClassPath.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/jdk/internal/loader/URLClassPath.java Thu Apr 21 13:39:53 2016 +0200 @@ -52,6 +52,7 @@ import java.util.LinkedList; import java.util.List; import java.util.NoSuchElementException; +import java.util.Properties; import java.util.Set; import java.util.Stack; import java.util.StringTokenizer; @@ -69,6 +70,7 @@ import jdk.internal.util.jar.JarIndex; import sun.net.util.URLUtil; import sun.net.www.ParseUtil; +import sun.security.action.GetPropertyAction; /** * This class is used to maintain a search path of URLs for loading classes @@ -78,20 +80,15 @@ */ public class URLClassPath { private static final String USER_AGENT_JAVA_VERSION = "UA-Java-Version"; - private static final String JAVA_HOME; private static final String JAVA_VERSION; private static final boolean DEBUG; private static final boolean DISABLE_JAR_CHECKING; static { - JAVA_HOME = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("java.home")); - JAVA_VERSION = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("java.version")); - DEBUG = (java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("sun.misc.URLClassPath.debug")) != null); - String p = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("sun.misc.URLClassPath.disableJarChecking")); + Properties props = GetPropertyAction.getProperties(); + JAVA_VERSION = props.getProperty("java.version"); + DEBUG = (props.getProperty("sun.misc.URLClassPath.debug") != null); + String p = props.getProperty("sun.misc.URLClassPath.disableJarChecking"); DISABLE_JAR_CHECKING = p != null ? p.equals("true") || p.equals("") : false; } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/jdk/internal/logger/LoggerFinderLoader.java --- a/jdk/src/java.base/share/classes/jdk/internal/logger/LoggerFinderLoader.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/jdk/internal/logger/LoggerFinderLoader.java Thu Apr 21 13:39:53 2016 +0200 @@ -33,6 +33,7 @@ import java.util.ServiceConfigurationError; import java.util.ServiceLoader; import sun.security.util.SecurityConstants; +import sun.security.action.GetPropertyAction; /** * Helper class used to load the {@link java.lang.System.LoggerFinder}. @@ -79,9 +80,8 @@ // Get configuration error policy private static ErrorPolicy configurationErrorPolicy() { - final PrivilegedAction getConfigurationErrorPolicy = - () -> System.getProperty("jdk.logger.finder.error"); - String errorPolicy = AccessController.doPrivileged(getConfigurationErrorPolicy); + String errorPolicy = + GetPropertyAction.getProperty("jdk.logger.finder.error"); if (errorPolicy == null || errorPolicy.isEmpty()) { return ErrorPolicy.WARNING; } @@ -95,9 +95,8 @@ // Whether multiple provider should be considered as an error. // This is further submitted to the configuration error policy. private static boolean ensureSingletonProvider() { - final PrivilegedAction ensureSingletonProvider = - () -> Boolean.getBoolean("jdk.logger.finder.singleton"); - return AccessController.doPrivileged(ensureSingletonProvider); + return Boolean.parseBoolean( + GetPropertyAction.getProperty("jdk.logger.finder.singleton")); } private static Iterator findLoggerFinderProviders() { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/jdk/internal/logger/SimpleConsoleLogger.java --- a/jdk/src/java.base/share/classes/jdk/internal/logger/SimpleConsoleLogger.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/jdk/internal/logger/SimpleConsoleLogger.java Thu Apr 21 13:39:53 2016 +0200 @@ -55,8 +55,8 @@ PlatformLogger.toPlatformLevel(DEFAULT_LEVEL); static Level getDefaultLevel() { - String levelName = AccessController.doPrivileged( - new GetPropertyAction("jdk.system.logger.level", "INFO")); + String levelName = GetPropertyAction + .getProperty("jdk.system.logger.level", "INFO"); try { return Level.valueOf(levelName); } catch (IllegalArgumentException iae) { @@ -425,8 +425,8 @@ // Make it easier to wrap Logger... static private final String[] skips; static { - String additionalPkgs = AccessController.doPrivileged( - new GetPropertyAction("jdk.logger.packages")); + String additionalPkgs = + GetPropertyAction.getProperty("jdk.logger.packages"); skips = additionalPkgs == null ? new String[0] : additionalPkgs.split(","); } @@ -485,7 +485,7 @@ // jdk/test/java/lang/invoke/lambda/LogGeneratedClassesTest.java // to fail - because that test has a testcase which somehow references // PlatformLogger and counts the number of generated lambda classes. - String format = AccessController.doPrivileged(new GetPropertyAction(key)); + String format = GetPropertyAction.getProperty(key); if (format == null && defaultPropertyGetter != null) { format = defaultPropertyGetter.apply(key); diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/jdk/internal/reflect/Reflection.java --- a/jdk/src/java.base/share/classes/jdk/internal/reflect/Reflection.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/jdk/internal/reflect/Reflection.java Thu Apr 21 13:39:53 2016 +0200 @@ -27,13 +27,12 @@ import java.lang.reflect.*; -import java.security.AccessController; -import java.security.PrivilegedAction; import java.util.HashMap; import java.util.Map; import java.util.Objects; import jdk.internal.HotSpotIntrinsicCandidate; import jdk.internal.misc.VM; +import sun.security.action.GetPropertyAction; /** Common utility routines used by both java.lang and java.lang.reflect */ @@ -344,15 +343,10 @@ private static void printStackTraceIfNeeded(Throwable e) { if (!printStackWhenAccessFailsSet && VM.initLevel() >= 1) { - // can't use method reference here, might be too early in startup - PrivilegedAction pa = new PrivilegedAction() { - public Boolean run() { - String s; - s = System.getProperty("sun.reflect.debugModuleAccessChecks"); - return (s != null && !s.equalsIgnoreCase("false")); - } - }; - printStackWhenAccessFails = AccessController.doPrivileged(pa); + String s = GetPropertyAction + .getProperty("sun.reflect.debugModuleAccessChecks"); + printStackWhenAccessFails = + (s != null && !s.equalsIgnoreCase("false")); printStackWhenAccessFailsSet = true; } if (printStackWhenAccessFails) { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java --- a/jdk/src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java Thu Apr 21 13:39:53 2016 +0200 @@ -30,10 +30,11 @@ import java.lang.reflect.Method; import java.lang.reflect.Constructor; import java.lang.reflect.Modifier; -import java.security.AccessController; import java.security.Permission; import java.security.PrivilegedAction; +import java.util.Properties; import sun.reflect.misc.ReflectUtil; +import sun.security.action.GetPropertyAction; /**

The master factory for all reflective objects, both those in java.lang.reflect (Fields, Methods, Constructors) as well as their @@ -382,41 +383,37 @@ run, before the system properties are set up. */ private static void checkInitted() { if (initted) return; - AccessController.doPrivileged( - new PrivilegedAction<>() { - public Void run() { - // Tests to ensure the system properties table is fully - // initialized. This is needed because reflection code is - // called very early in the initialization process (before - // command-line arguments have been parsed and therefore - // these user-settable properties installed.) We assume that - // if System.out is non-null then the System class has been - // fully initialized and that the bulk of the startup code - // has been run. - if (System.out == null) { - // java.lang.System not yet fully initialized - return null; - } + // Tests to ensure the system properties table is fully + // initialized. This is needed because reflection code is + // called very early in the initialization process (before + // command-line arguments have been parsed and therefore + // these user-settable properties installed.) We assume that + // if System.out is non-null then the System class has been + // fully initialized and that the bulk of the startup code + // has been run. + + if (System.out == null) { + // java.lang.System not yet fully initialized + return; + } - String val = System.getProperty("sun.reflect.noInflation"); - if (val != null && val.equals("true")) { - noInflation = true; - } + Properties props = GetPropertyAction.getProperties(); + String val = props.getProperty("sun.reflect.noInflation"); + if (val != null && val.equals("true")) { + noInflation = true; + } - val = System.getProperty("sun.reflect.inflationThreshold"); - if (val != null) { - try { - inflationThreshold = Integer.parseInt(val); - } catch (NumberFormatException e) { - throw new RuntimeException("Unable to parse property sun.reflect.inflationThreshold", e); - } - } + val = props.getProperty("sun.reflect.inflationThreshold"); + if (val != null) { + try { + inflationThreshold = Integer.parseInt(val); + } catch (NumberFormatException e) { + throw new RuntimeException("Unable to parse property sun.reflect.inflationThreshold", e); + } + } - initted = true; - return null; - } - }); + initted = true; } private static LangReflectAccess langReflectAccess() { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/net/ResourceManager.java --- a/jdk/src/java.base/share/classes/sun/net/ResourceManager.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/net/ResourceManager.java Thu Apr 21 13:39:53 2016 +0200 @@ -53,9 +53,8 @@ private static final AtomicInteger numSockets; static { - String prop = java.security.AccessController.doPrivileged( - new GetPropertyAction("sun.net.maxDatagramSockets") - ); + String prop = + GetPropertyAction.getProperty("sun.net.maxDatagramSockets"); int defmax = DEFAULT_MAX_SOCKETS; try { if (prop != null) { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/net/sdp/SdpSupport.java --- a/jdk/src/java.base/share/classes/sun/net/sdp/SdpSupport.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/net/sdp/SdpSupport.java Thu Apr 21 13:39:53 2016 +0200 @@ -31,6 +31,7 @@ import jdk.internal.misc.SharedSecrets; import jdk.internal.misc.JavaIOFileDescriptorAccess; +import sun.security.action.GetPropertyAction; /** @@ -39,8 +40,7 @@ */ public final class SdpSupport { - private static final String os = AccessController - .doPrivileged(new sun.security.action.GetPropertyAction("os.name")); + private static final String os = GetPropertyAction.getProperty("os.name"); private static final boolean isSupported = (os.equals("SunOS") || (os.equals("Linux"))); private static final JavaIOFileDescriptorAccess fdAccess = SharedSecrets.getJavaIOFileDescriptorAccess(); diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/net/smtp/SmtpClient.java --- a/jdk/src/java.base/share/classes/sun/net/smtp/SmtpClient.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/net/smtp/SmtpClient.java Thu Apr 21 13:39:53 2016 +0200 @@ -25,10 +25,10 @@ package sun.net.smtp; -import java.util.StringTokenizer; import java.io.*; import java.net.*; import sun.net.TransferProtocolClient; +import sun.security.action.GetPropertyAction; /** * This class implements the SMTP client. @@ -157,8 +157,7 @@ } try { String s; - mailhost = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("mail.host")); + mailhost = GetPropertyAction.getProperty("mail.host"); if (mailhost != null) { openServer(mailhost); return; @@ -184,8 +183,7 @@ setConnectTimeout(to); try { String s; - mailhost = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("mail.host")); + mailhost = GetPropertyAction.getProperty("mail.host"); if (mailhost != null) { openServer(mailhost); return; diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/net/www/MimeLauncher.java --- a/jdk/src/java.base/share/classes/sun/net/www/MimeLauncher.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/net/www/MimeLauncher.java Thu Apr 21 13:39:53 2016 +0200 @@ -27,6 +27,7 @@ import java.net.URL; import java.io.*; import java.util.StringTokenizer; +import sun.security.action.GetPropertyAction; class MimeLauncher extends Thread { java.net.URLConnection uc; @@ -182,8 +183,7 @@ } String execPathList; - execPathList = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("exec.path")); + execPathList = GetPropertyAction.getProperty("exec.path"); if (execPathList == null) { // exec.path property not set return false; diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/net/www/http/HttpClient.java --- a/jdk/src/java.base/share/classes/sun/net/www/http/HttpClient.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/net/www/http/HttpClient.java Thu Apr 21 13:39:53 2016 +0200 @@ -28,6 +28,7 @@ import java.io.*; import java.net.*; import java.util.Locale; +import java.util.Properties; import sun.net.NetworkClient; import sun.net.ProgressSource; import sun.net.www.MessageHeader; @@ -37,6 +38,7 @@ import sun.net.www.protocol.http.HttpURLConnection; import sun.util.logging.PlatformLogger; import static sun.net.www.protocol.http.HttpURLConnection.TunnelState.*; +import sun.security.action.GetPropertyAction; /** * @author Herb Jellinek @@ -143,20 +145,18 @@ } static { - String keepAlive = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("http.keepAlive")); - - String retryPost = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("sun.net.http.retryPost")); + Properties props = GetPropertyAction.getProperties(); + String keepAlive = props.getProperty("http.keepAlive"); + String retryPost = props.getProperty("sun.net.http.retryPost"); if (keepAlive != null) { - keepAliveProp = Boolean.valueOf(keepAlive).booleanValue(); + keepAliveProp = Boolean.parseBoolean(keepAlive); } else { keepAliveProp = true; } if (retryPost != null) { - retryPostProp = Boolean.valueOf(retryPost).booleanValue(); + retryPostProp = Boolean.parseBoolean(retryPost); } else retryPostProp = true; diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java --- a/jdk/src/java.base/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java Thu Apr 21 13:39:53 2016 +0200 @@ -46,6 +46,7 @@ import java.util.StringTokenizer; import java.util.Iterator; import java.security.Permission; +import java.util.Properties; import sun.net.NetworkClient; import sun.net.www.MessageHeader; import sun.net.www.MeteredStream; @@ -277,11 +278,10 @@ if (user == null) { user = "anonymous"; - String vers = java.security.AccessController.doPrivileged( - new GetPropertyAction("java.version")); - password = java.security.AccessController.doPrivileged( - new GetPropertyAction("ftp.protocol.user", - "Java" + vers + "@")); + Properties props = GetPropertyAction.getProperties(); + String vers = props.getProperty("java.version"); + password = props.getProperty("ftp.protocol.user", + "Java" + vers + "@"); } try { ftp = FtpClient.create(); diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java --- a/jdk/src/java.base/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java Thu Apr 21 13:39:53 2016 +0200 @@ -25,9 +25,10 @@ package sun.net.www.protocol.http; -import sun.net.www.*; import java.util.Iterator; import java.util.HashMap; +import sun.net.www.*; +import sun.security.action.GetPropertyAction; /** * This class is used to parse the information in WWW-Authenticate: and Proxy-Authenticate: @@ -93,8 +94,7 @@ } static { - authPref = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("http.auth.preference")); + authPref = GetPropertyAction.getProperty("http.auth.preference"); // http.auth.preference can be set to SPNEGO or Kerberos. // In fact they means "Negotiate with SPNEGO" and "Negotiate with diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java --- a/jdk/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Thu Apr 21 13:39:53 2016 +0200 @@ -52,7 +52,6 @@ import java.security.PrivilegedExceptionAction; import java.security.PrivilegedActionException; import java.io.*; -import java.net.*; import java.util.ArrayList; import java.util.Collections; import java.util.Date; @@ -78,12 +77,15 @@ import java.util.TimeZone; import java.net.MalformedURLException; import java.nio.ByteBuffer; +import java.util.Properties; import static sun.net.www.protocol.http.AuthScheme.BASIC; import static sun.net.www.protocol.http.AuthScheme.DIGEST; import static sun.net.www.protocol.http.AuthScheme.NTLM; import static sun.net.www.protocol.http.AuthScheme.NEGOTIATE; import static sun.net.www.protocol.http.AuthScheme.KERBEROS; import static sun.net.www.protocol.http.AuthScheme.UNKNOWN; +import sun.security.action.GetIntegerAction; +import sun.security.action.GetPropertyAction; /** * A class to represent an HTTP connection to a remote object. @@ -205,46 +207,38 @@ }; static { - maxRedirects = java.security.AccessController.doPrivileged( - new sun.security.action.GetIntegerAction( - "http.maxRedirects", defaultmaxRedirects)).intValue(); - version = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("java.version")); - String agent = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("http.agent")); + Properties props = GetPropertyAction.getProperties(); + maxRedirects = GetIntegerAction.getProperty("http.maxRedirects", + defaultmaxRedirects); + version = props.getProperty("java.version"); + String agent = props.getProperty("http.agent"); if (agent == null) { agent = "Java/"+version; } else { agent = agent + " Java/"+version; } userAgent = agent; - validateProxy = java.security.AccessController.doPrivileged( - new sun.security.action.GetBooleanAction( - "http.auth.digest.validateProxy")).booleanValue(); - validateServer = java.security.AccessController.doPrivileged( - new sun.security.action.GetBooleanAction( - "http.auth.digest.validateServer")).booleanValue(); - - enableESBuffer = java.security.AccessController.doPrivileged( - new sun.security.action.GetBooleanAction( - "sun.net.http.errorstream.enableBuffering")).booleanValue(); - timeout4ESBuffer = java.security.AccessController.doPrivileged( - new sun.security.action.GetIntegerAction( - "sun.net.http.errorstream.timeout", 300)).intValue(); + validateProxy = Boolean.parseBoolean( + props.getProperty("http.auth.digest.validateProxy")); + validateServer = Boolean.parseBoolean( + props.getProperty("http.auth.digest.validateServer")); + + enableESBuffer = Boolean.parseBoolean( + props.getProperty("sun.net.http.errorstream.enableBuffering")); + timeout4ESBuffer = GetIntegerAction + .getProperty("sun.net.http.errorstream.timeout", 300); if (timeout4ESBuffer <= 0) { timeout4ESBuffer = 300; // use the default } - bufSize4ES = java.security.AccessController.doPrivileged( - new sun.security.action.GetIntegerAction( - "sun.net.http.errorstream.bufferSize", 4096)).intValue(); + bufSize4ES = GetIntegerAction + .getProperty("sun.net.http.errorstream.bufferSize", 4096); if (bufSize4ES <= 0) { bufSize4ES = 4096; // use the default } - allowRestrictedHeaders = java.security.AccessController.doPrivileged( - new sun.security.action.GetBooleanAction( - "sun.net.http.allowRestrictedHeaders")).booleanValue(); + allowRestrictedHeaders = Boolean.parseBoolean( + props.getProperty("sun.net.http.allowRestrictedHeaders")); if (!allowRestrictedHeaders) { restrictedHeaderSet = new HashSet<>(restrictedHeaders.length); for (int i=0; i < restrictedHeaders.length; i++) { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java --- a/jdk/src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java Thu Apr 21 13:39:53 2016 +0200 @@ -41,7 +41,6 @@ import java.security.cert.*; import java.util.StringTokenizer; import java.util.Vector; -import java.security.AccessController; import javax.security.auth.x500.X500Principal; @@ -139,8 +138,8 @@ // If ciphers are assigned, sort them into an array. // String ciphers []; - String cipherString = AccessController.doPrivileged( - new GetPropertyAction("https.cipherSuites")); + String cipherString = + GetPropertyAction.getProperty("https.cipherSuites"); if (cipherString == null || "".equals(cipherString)) { ciphers = null; @@ -163,8 +162,8 @@ // If protocols are assigned, sort them into an array. // String protocols []; - String protocolString = AccessController.doPrivileged( - new GetPropertyAction("https.protocols")); + String protocolString = + GetPropertyAction.getProperty("https.protocols"); if (protocolString == null || "".equals(protocolString)) { protocols = null; @@ -184,8 +183,7 @@ } private String getUserAgent() { - String userAgent = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("https.agent")); + String userAgent = GetPropertyAction.getProperty("https.agent"); if (userAgent == null || userAgent.length() == 0) { userAgent = "JSSE"; } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/net/www/protocol/jrt/JavaRuntimeURLConnection.java --- a/jdk/src/java.base/share/classes/sun/net/www/protocol/jrt/JavaRuntimeURLConnection.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/jrt/JavaRuntimeURLConnection.java Thu Apr 21 13:39:53 2016 +0200 @@ -32,10 +32,7 @@ import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; -import java.security.AccessController; import java.security.Permission; -import java.security.PrivilegedAction; -import java.util.List; import jdk.internal.jimage.ImageLocation; import jdk.internal.jimage.ImageReader; @@ -45,6 +42,7 @@ import jdk.internal.loader.Resource; import sun.net.www.ParseUtil; import sun.net.www.URLConnection; +import sun.security.action.GetPropertyAction; /** * URLConnection implementation that can be used to connect to resources @@ -163,11 +161,7 @@ public Permission getPermission() throws IOException { Permission p = permission; if (p == null) { - // using lambda expression here leads to recursive initialization - PrivilegedAction pa = new PrivilegedAction() { - public String run() { return System.getProperty("java.home"); } - }; - String home = AccessController.doPrivileged(pa); + String home = GetPropertyAction.getProperty("java.home"); p = new FilePermission(home + File.separator + "-", "read"); permission = p; } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/net/www/protocol/netdoc/Handler.java --- a/jdk/src/java.base/share/classes/sun/net/www/protocol/netdoc/Handler.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/netdoc/Handler.java Thu Apr 21 13:39:53 2016 +0200 @@ -40,6 +40,7 @@ import java.net.URLStreamHandler; import java.io.InputStream; import java.io.IOException; +import sun.security.action.GetPropertyAction; public class Handler extends URLStreamHandler { static URL base; @@ -54,12 +55,10 @@ URLConnection uc = null; URL ru; - Boolean tmp = java.security.AccessController.doPrivileged( - new sun.security.action.GetBooleanAction("newdoc.localonly")); - boolean localonly = tmp.booleanValue(); + boolean localonly = Boolean.parseBoolean( + GetPropertyAction.getProperty("newdoc.localonly")); - String docurl = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("doc.url")); + String docurl = GetPropertyAction.getProperty("doc.url"); String file = u.getFile(); if (!localonly) { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java --- a/jdk/src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java Thu Apr 21 13:39:53 2016 +0200 @@ -1019,9 +1019,8 @@ if (!propertyChecked) { synchronized (FileChannelImpl.class) { if (!propertyChecked) { - String value = AccessController.doPrivileged( - new GetPropertyAction( - "sun.nio.ch.disableSystemWideOverlappingFileLockCheck")); + String value = GetPropertyAction.getProperty( + "sun.nio.ch.disableSystemWideOverlappingFileLockCheck"); isSharedFileLockTable = ((value == null) || value.equals("false")); propertyChecked = true; } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/nio/ch/Net.java --- a/jdk/src/java.base/share/classes/sun/nio/ch/Net.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/nio/ch/Net.java Thu Apr 21 13:39:53 2016 +0200 @@ -33,6 +33,7 @@ import java.security.AccessController; import java.security.PrivilegedAction; import sun.net.ExtendedOptionsImpl; +import sun.security.action.GetPropertyAction; public class Net { @@ -382,13 +383,8 @@ } public static boolean isFastTcpLoopbackRequested() { - String loopbackProp = java.security.AccessController.doPrivileged( - new PrivilegedAction() { - @Override - public String run() { - return System.getProperty("jdk.net.useFastTcpLoopback"); - } - }); + String loopbackProp = + GetPropertyAction.getProperty("jdk.net.useFastTcpLoopback"); boolean enable; if ("".equals(loopbackProp)) { enable = true; @@ -647,16 +643,9 @@ int availLevel = isExclusiveBindAvailable(); if (availLevel >= 0) { String exclBindProp = - java.security.AccessController.doPrivileged( - new PrivilegedAction() { - @Override - public String run() { - return System.getProperty( - "sun.net.useExclusiveBind"); - } - }); + GetPropertyAction.getProperty("sun.net.useExclusiveBind"); if (exclBindProp != null) { - exclusiveBind = exclBindProp.length() == 0 ? + exclusiveBind = exclBindProp.isEmpty() ? true : Boolean.parseBoolean(exclBindProp); } else if (availLevel == 1) { exclusiveBind = true; diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/nio/ch/Util.java --- a/jdk/src/java.base/share/classes/sun/nio/ch/Util.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/nio/ch/Util.java Thu Apr 21 13:39:53 2016 +0200 @@ -64,13 +64,7 @@ * for potential future-proofing. */ private static long getMaxCachedBufferSize() { - String s = java.security.AccessController.doPrivileged( - new PrivilegedAction() { - @Override - public String run() { - return System.getProperty("jdk.nio.maxCachedBufferSize"); - } - }); + String s = GetPropertyAction.getProperty("jdk.nio.maxCachedBufferSize"); if (s != null) { try { long m = Long.parseLong(s); @@ -471,8 +465,7 @@ if (bugLevel == null) { if (!jdk.internal.misc.VM.isBooted()) return false; - String value = AccessController.doPrivileged( - new GetPropertyAction("sun.nio.ch.bugLevel")); + String value = GetPropertyAction.getProperty("sun.nio.ch.bugLevel"); bugLevel = (value != null) ? value : ""; } return bugLevel.equals(bl); diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/nio/cs/StandardCharsets.java.template --- a/jdk/src/java.base/share/classes/sun/nio/cs/StandardCharsets.java.template Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/nio/cs/StandardCharsets.java.template Thu Apr 21 13:39:53 2016 +0200 @@ -34,8 +34,7 @@ import java.util.Iterator; import java.util.Locale; import java.util.Map; -import java.security.AccessController; -import java.security.PrivilegedAction; +import sun.security.action.GetPropertyAction; public class StandardCharsets extends CharsetProvider { @@ -201,15 +200,7 @@ } private static String getProperty(String key) { - // this method may be called during initialization of - // system class loader and thus not using lambda - return AccessController.doPrivileged( - new PrivilegedAction() { - @Override - public String run() { - return System.getProperty(key); - } - }); + return GetPropertyAction.getProperty(key); } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/nio/fs/Util.java --- a/jdk/src/java.base/share/classes/sun/nio/fs/Util.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/nio/fs/Util.java Thu Apr 21 13:39:53 2016 +0200 @@ -28,8 +28,7 @@ import java.util.*; import java.nio.file.*; import java.nio.charset.Charset; -import java.security.*; -import sun.security.action.*; +import sun.security.action.GetPropertyAction; /** * Utility methods @@ -39,7 +38,7 @@ private Util() { } private static final Charset jnuEncoding = Charset.forName( - AccessController.doPrivileged(new GetPropertyAction("sun.jnu.encoding"))); + GetPropertyAction.getProperty("sun.jnu.encoding")); /** * Returns {@code Charset} corresponding to the sun.jnu.encoding property diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/security/action/GetIntegerAction.java --- a/jdk/src/java.base/share/classes/sun/security/action/GetIntegerAction.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/security/action/GetIntegerAction.java Thu Apr 21 13:39:53 2016 +0200 @@ -25,6 +25,8 @@ package sun.security.action; +import java.security.AccessController; + /** * A convenience class for retrieving the integer value of a system property * as a privileged action. @@ -67,7 +69,7 @@ implements java.security.PrivilegedAction { private String theProp; private int defaultVal; - private boolean defaultSet = false; + private boolean defaultSet; /** * Constructor that takes the name of the system property whose integer @@ -110,4 +112,39 @@ return defaultVal; return value; } + + /** + * Convenience method to get a property without going through doPrivileged + * if no security manager is present. This is unsafe for inclusion in a + * public API but allowable here since this class is now encapsulated. + * + * @param theProp the name of the system property. + */ + public static Integer getProperty(String theProp) { + if (System.getSecurityManager() == null) { + return Integer.getInteger(theProp); + } else { + return AccessController.doPrivileged( + new GetIntegerAction(theProp)); + } + } + + /** + * Convenience method to get a property without going through doPrivileged + * if no security manager is present. This is unsafe for inclusion in a + * public API but allowable here since this class is now encapsulated. + * + * @param theProp the name of the system property. + * @param defaultVal the default value. + */ + public static Integer getProperty(String theProp, int defaultVal) { + Integer value; + if (System.getSecurityManager() == null) { + value = Integer.getInteger(theProp); + } else { + value = AccessController.doPrivileged( + new GetIntegerAction(theProp)); + } + return (value != null) ? value : defaultVal; + } } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/security/action/GetPropertyAction.java --- a/jdk/src/java.base/share/classes/sun/security/action/GetPropertyAction.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/security/action/GetPropertyAction.java Thu Apr 21 13:39:53 2016 +0200 @@ -25,6 +25,10 @@ package sun.security.action; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.util.Properties; + /** * A convenience class for retrieving the string value of a system * property as a privileged action. @@ -46,8 +50,7 @@ * @since 1.2 */ -public class GetPropertyAction - implements java.security.PrivilegedAction { +public class GetPropertyAction implements PrivilegedAction { private String theProp; private String defaultVal; @@ -84,4 +87,57 @@ String value = System.getProperty(theProp); return (value == null) ? defaultVal : value; } + + /** + * Convenience method to get a property without going through doPrivileged + * if no security manager is present. This is unsafe for inclusion in a + * public API but allowable here since this class is now encapsulated. + * + * @param theProp the name of the system property. + */ + public static String getProperty(String theProp) { + if (System.getSecurityManager() == null) { + return System.getProperty(theProp); + } else { + return AccessController.doPrivileged( + new GetPropertyAction(theProp)); + } + } + + /** + * Convenience method to get a property without going through doPrivileged + * if no security manager is present. This is unsafe for inclusion in a + * public API but allowable here since this class is now encapsulated. + * + * @param theProp the name of the system property. + * @param defaultVal the default value. + */ + public static String getProperty(String theProp, String defaultVal) { + if (System.getSecurityManager() == null) { + return System.getProperty(theProp, defaultVal); + } else { + return AccessController.doPrivileged( + new GetPropertyAction(theProp, defaultVal)); + } + } + + /** + * Convenience method to call System.getProperties without + * having to go through doPrivileged if no security manager is present. + * This is unsafe for inclusion in a public API but allowable here since + * this class is now encapsulated. + */ + public static Properties getProperties() { + if (System.getSecurityManager() == null) { + return System.getProperties(); + } else { + return AccessController.doPrivileged( + new PrivilegedAction() { + public Properties run() { + return System.getProperties(); + } + } + ); + } + } } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/security/provider/DSAKeyFactory.java --- a/jdk/src/java.base/share/classes/sun/security/provider/DSAKeyFactory.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/security/provider/DSAKeyFactory.java Thu Apr 21 13:39:53 2016 +0200 @@ -70,8 +70,7 @@ * By default this is false. * This incompatibility was introduced by 4532506. */ - String prop = AccessController.doPrivileged - (new GetPropertyAction(SERIAL_PROP, null)); + String prop = GetPropertyAction.getProperty(SERIAL_PROP); SERIAL_INTEROP = "true".equalsIgnoreCase(prop); } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/security/rsa/RSAKeyFactory.java --- a/jdk/src/java.base/share/classes/sun/security/rsa/RSAKeyFactory.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/security/rsa/RSAKeyFactory.java Thu Apr 21 13:39:53 2016 +0200 @@ -84,9 +84,8 @@ public static final int MAX_RESTRICTED_EXPLEN = 64; private static final boolean restrictExpLen = - "true".equalsIgnoreCase(AccessController.doPrivileged( - new GetPropertyAction( - "sun.security.rsa.restrictRSAExponent", "true"))); + "true".equalsIgnoreCase(GetPropertyAction.getProperty( + "sun.security.rsa.restrictRSAExponent", "true")); // instance used for static translateKey(); private static final RSAKeyFactory INSTANCE = new RSAKeyFactory(); diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/security/ssl/ClientKeyExchangeService.java --- a/jdk/src/java.base/share/classes/sun/security/ssl/ClientKeyExchangeService.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/security/ssl/ClientKeyExchangeService.java Thu Apr 21 13:39:53 2016 +0200 @@ -50,10 +50,7 @@ providers = new HashMap<>(); static { - final String key = "java.home"; - String path = AccessController.doPrivileged( - new GetPropertyAction(key), null, - new PropertyPermission(key, "read")); + String path = GetPropertyAction.getProperty("java.home"); ServiceLoader sc = AccessController.doPrivileged( (PrivilegedAction>) diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/security/ssl/Debug.java --- a/jdk/src/java.base/share/classes/sun/security/ssl/Debug.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/security/ssl/Debug.java Thu Apr 21 13:39:53 2016 +0200 @@ -26,7 +26,6 @@ package sun.security.ssl; import java.io.PrintStream; -import java.security.AccessController; import java.util.Locale; import sun.security.util.HexDumpEncoder; @@ -46,8 +45,7 @@ private static String args; static { - args = java.security.AccessController.doPrivileged( - new GetPropertyAction("javax.net.debug", "")); + args = GetPropertyAction.getProperty("javax.net.debug", ""); args = args.toLowerCase(Locale.ENGLISH); if (args.equals("help")) { Help(); @@ -184,8 +182,7 @@ */ static boolean getBooleanProperty(String propName, boolean defaultValue) { // if set, require value of either true or false - String b = AccessController.doPrivileged( - new GetPropertyAction(propName)); + String b = GetPropertyAction.getProperty(propName); if (b == null) { return defaultValue; } else if (b.equalsIgnoreCase("false")) { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/security/ssl/SSLContextImpl.java --- a/jdk/src/java.base/share/classes/sun/security/ssl/SSLContextImpl.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/security/ssl/SSLContextImpl.java Thu Apr 21 13:39:53 2016 +0200 @@ -656,8 +656,7 @@ // the provider service. Instead, please handle the initialization // exception in the caller's constructor. static { - String property = AccessController.doPrivileged( - new GetPropertyAction(PROPERTY_NAME)); + String property = GetPropertyAction.getProperty(PROPERTY_NAME); if (property != null && property.length() != 0) { // remove double quote marks from beginning/end of the property if (property.length() > 1 && property.charAt(0) == '"' && diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/security/ssl/ServerHandshaker.java --- a/jdk/src/java.base/share/classes/sun/security/ssl/ServerHandshaker.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/security/ssl/ServerHandshaker.java Thu Apr 21 13:39:53 2016 +0200 @@ -119,8 +119,8 @@ private long statusRespTimeout; static { - String property = AccessController.doPrivileged( - new GetPropertyAction("jdk.tls.ephemeralDHKeySize")); + String property = + GetPropertyAction.getProperty("jdk.tls.ephemeralDHKeySize"); if (property == null || property.length() == 0) { useLegacyEphemeralDHKeys = false; useSmartEphemeralDHKeys = false; diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/security/ssl/StatusResponseManager.java --- a/jdk/src/java.base/share/classes/sun/security/ssl/StatusResponseManager.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/security/ssl/StatusResponseManager.java Thu Apr 21 13:39:53 2016 +0200 @@ -73,8 +73,8 @@ DEFAULT_CACHE_LIFETIME)); cacheLifetime = life > 0 ? life : 0; - String uriStr = AccessController.doPrivileged( - new GetPropertyAction("jdk.tls.stapling.responderURI")); + String uriStr = + GetPropertyAction.getProperty("jdk.tls.stapling.responderURI"); URI tmpURI; try { tmpURI = ((uriStr != null && !uriStr.isEmpty()) ? diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/security/util/Debug.java --- a/jdk/src/java.base/share/classes/sun/security/util/Debug.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/security/util/Debug.java Thu Apr 21 13:39:53 2016 +0200 @@ -29,6 +29,7 @@ import java.util.regex.Pattern; import java.util.regex.Matcher; import java.util.Locale; +import sun.security.action.GetPropertyAction; /** * A utility class for debuging. @@ -42,13 +43,10 @@ private static String args; static { - args = java.security.AccessController.doPrivileged - (new sun.security.action.GetPropertyAction - ("java.security.debug")); + args = GetPropertyAction.getProperty("java.security.debug"); - String args2 = java.security.AccessController.doPrivileged - (new sun.security.action.GetPropertyAction - ("java.security.auth.debug")); + String args2 = + GetPropertyAction.getProperty("java.security.auth.debug"); if (args == null) { args = args2; diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/util/calendar/LocalGregorianCalendar.java --- a/jdk/src/java.base/share/classes/sun/util/calendar/LocalGregorianCalendar.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/util/calendar/LocalGregorianCalendar.java Thu Apr 21 13:39:53 2016 +0200 @@ -27,6 +27,7 @@ import java.security.AccessController; import java.util.TimeZone; +import sun.security.action.GetPropertyAction; /** * @@ -142,8 +143,8 @@ } // Append an era to the predefined eras if it's given by the property. - String prop = AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("jdk.calendar.japanese.supplemental.era")); + String prop = GetPropertyAction + .getProperty("jdk.calendar.japanese.supplemental.era"); if (prop != null) { Era era = parseEraEntry(prop); if (era != null) { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java --- a/jdk/src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java Thu Apr 21 13:39:53 2016 +0200 @@ -245,11 +245,8 @@ }; static { - String oldmapping = AccessController.doPrivileged( - new GetPropertyAction("sun.timezone.ids.oldmapping", "false")).toLowerCase(Locale.ROOT); - USE_OLDMAPPING = (oldmapping.equals("yes") || oldmapping.equals("true")); - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { + USE_OLDMAPPING = AccessController.doPrivileged(new PrivilegedAction() { + public Boolean run() { try { String libDir = System.getProperty("java.home") + File.separator + "lib"; try (DataInputStream dis = new DataInputStream( @@ -260,7 +257,9 @@ } catch (Exception x) { throw new Error(x); } - return null; + String oldmapping = System.getProperty("sun.timezone.ids.oldmapping", "false") + .toLowerCase(Locale.ROOT); + return (oldmapping.equals("yes") || oldmapping.equals("true")); } }); } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/share/classes/sun/util/locale/provider/LocaleProviderAdapter.java --- a/jdk/src/java.base/share/classes/sun/util/locale/provider/LocaleProviderAdapter.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/share/classes/sun/util/locale/provider/LocaleProviderAdapter.java Thu Apr 21 13:39:53 2016 +0200 @@ -25,7 +25,6 @@ package sun.util.locale.provider; -import java.security.AccessController; import java.text.spi.BreakIteratorProvider; import java.text.spi.CollatorProvider; import java.text.spi.DateFormatProvider; @@ -47,6 +46,7 @@ import java.util.spi.LocaleNameProvider; import java.util.spi.LocaleServiceProvider; import java.util.spi.TimeZoneNameProvider; +import sun.security.action.GetPropertyAction; import sun.util.spi.CalendarProvider; /** @@ -116,8 +116,7 @@ adapterCache = new ConcurrentHashMap<>(); static { - String order = AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("java.locale.providers")); + String order = GetPropertyAction.getProperty("java.locale.providers"); List typeList = new ArrayList<>(); // Check user specified adapter preference diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/solaris/classes/sun/nio/fs/SolarisFileSystem.java --- a/jdk/src/java.base/solaris/classes/sun/nio/fs/SolarisFileSystem.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/solaris/classes/sun/nio/fs/SolarisFileSystem.java Thu Apr 21 13:39:53 2016 +0200 @@ -28,7 +28,6 @@ import java.nio.file.*; import java.io.IOException; import java.util.*; -import java.security.AccessController; import sun.security.action.GetPropertyAction; import static sun.nio.fs.SolarisNativeDispatcher.*; @@ -43,8 +42,7 @@ super(provider, dir); // check os.version - String osversion = AccessController - .doPrivileged(new GetPropertyAction("os.version")); + String osversion = GetPropertyAction.getProperty("os.version"); String[] vers = Util.split(osversion, '.'); assert vers.length >= 2; int majorVersion = Integer.parseInt(vers[0]); diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java --- a/jdk/src/java.base/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java Thu Apr 21 13:39:53 2016 +0200 @@ -29,7 +29,6 @@ import java.nio.file.attribute.*; import java.nio.file.spi.FileTypeDetector; import java.io.IOException; -import java.security.AccessController; import sun.security.action.GetPropertyAction; /** @@ -85,8 +84,8 @@ @Override FileTypeDetector getFileTypeDetector() { - Path userMimeTypes = Paths.get(AccessController.doPrivileged( - new GetPropertyAction("user.home")), ".mime.types"); + Path userMimeTypes = Paths.get( + GetPropertyAction.getProperty("user.home"), ".mime.types"); Path etcMimeTypes = Paths.get("/etc/mime.types"); return chain(new GioFileTypeDetector(), diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/unix/classes/java/io/UnixFileSystem.java --- a/jdk/src/java.base/unix/classes/java/io/UnixFileSystem.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/unix/classes/java/io/UnixFileSystem.java Thu Apr 21 13:39:53 2016 +0200 @@ -25,7 +25,7 @@ package java.io; -import java.security.AccessController; +import java.util.Properties; import sun.security.action.GetPropertyAction; @@ -36,12 +36,10 @@ private final String javaHome; public UnixFileSystem() { - slash = AccessController.doPrivileged( - new GetPropertyAction("file.separator")).charAt(0); - colon = AccessController.doPrivileged( - new GetPropertyAction("path.separator")).charAt(0); - javaHome = AccessController.doPrivileged( - new GetPropertyAction("java.home")); + Properties props = GetPropertyAction.getProperties(); + slash = props.getProperty("file.separator").charAt(0); + colon = props.getProperty("path.separator").charAt(0); + javaHome = props.getProperty("java.home"); } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/unix/classes/java/lang/ProcessImpl.java --- a/jdk/src/java.base/unix/classes/java/lang/ProcessImpl.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/unix/classes/java/lang/ProcessImpl.java Thu Apr 21 13:39:53 2016 +0200 @@ -46,8 +46,10 @@ import java.security.PrivilegedAction; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; +import java.util.Properties; import jdk.internal.misc.JavaIOFileDescriptorAccess; import jdk.internal.misc.SharedSecrets; +import sun.security.action.GetPropertyAction; /** * java.lang.Process subclass in the UNIX environment. @@ -123,11 +125,9 @@ } String helperPath() { - return AccessController.doPrivileged( - (PrivilegedAction) () -> - helperPath(System.getProperty("java.home"), - System.getProperty("os.arch")) - ); + Properties props = GetPropertyAction.getProperties(); + return helperPath(props.getProperty("java.home"), + props.getProperty("os.arch")); } LaunchMechanism launchMechanism() { @@ -159,9 +159,7 @@ } static Platform get() { - String osName = AccessController.doPrivileged( - (PrivilegedAction) () -> System.getProperty("os.name") - ); + String osName = GetPropertyAction.getProperty("os.name"); if (osName.equals("Linux")) { return LINUX; } if (osName.contains("OS X")) { return BSD; } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/unix/classes/java/net/DefaultDatagramSocketImplFactory.java --- a/jdk/src/java.base/unix/classes/java/net/DefaultDatagramSocketImplFactory.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/unix/classes/java/net/DefaultDatagramSocketImplFactory.java Thu Apr 21 13:39:53 2016 +0200 @@ -24,7 +24,7 @@ */ package java.net; -import java.security.AccessController; +import sun.security.action.GetPropertyAction; /** * This class defines a factory for creating DatagramSocketImpls. It defaults @@ -40,8 +40,7 @@ static { String prefix = null; try { - prefix = AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("impl.prefix", null)); + prefix = GetPropertyAction.getProperty("impl.prefix", null); if (prefix != null) prefixImplClass = Class.forName("java.net."+prefix+"DatagramSocketImpl"); } catch (Exception e) { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/unix/classes/sun/net/sdp/SdpProvider.java --- a/jdk/src/java.base/unix/classes/sun/net/sdp/SdpProvider.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/unix/classes/sun/net/sdp/SdpProvider.java Thu Apr 21 13:39:53 2016 +0200 @@ -34,7 +34,6 @@ import java.io.FileDescriptor; import java.io.IOException; import java.io.PrintStream; -import java.security.AccessController; import sun.net.sdp.SdpSupport; import sun.security.action.GetPropertyAction; @@ -57,8 +56,7 @@ public SdpProvider() { // if this property is not defined then there is nothing to do. - String file = AccessController.doPrivileged( - new GetPropertyAction("com.sun.sdp.conf")); + String file = GetPropertyAction.getProperty("com.sun.sdp.conf"); if (file == null) { this.enabled = false; this.rules = null; @@ -77,8 +75,7 @@ // check if debugging is enabled PrintStream out = null; - String logfile = AccessController.doPrivileged( - new GetPropertyAction("com.sun.sdp.debug")); + String logfile = GetPropertyAction.getProperty("com.sun.sdp.debug"); if (logfile != null) { out = System.out; if (logfile.length() > 0) { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/unix/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java --- a/jdk/src/java.base/unix/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/unix/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java Thu Apr 21 13:39:53 2016 +0200 @@ -39,6 +39,7 @@ import sun.net.www.protocol.http.AuthenticationInfo; import sun.net.www.protocol.http.AuthScheme; import sun.net.www.protocol.http.HttpURLConnection; +import sun.security.action.GetPropertyAction; /** * NTLMAuthentication: @@ -73,12 +74,9 @@ NTLMAuthenticationCallback.getNTLMAuthenticationCallback(); private String hostname; - private static String defaultDomain; /* Domain to use if not specified by user */ - - static { - defaultDomain = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("http.auth.ntlm.domain", "")); - }; + /* Domain to use if not specified by user */ + private static String defaultDomain = + GetPropertyAction.getProperty("http.auth.ntlm.domain", ""); public static boolean supportsTransparentAuth () { return false; @@ -143,8 +141,7 @@ password = pw.getPassword(); init0(); try { - String version = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("ntlm.version")); + String version = GetPropertyAction.getProperty("ntlm.version"); client = new Client(version, hostname, username, ntdomain, password); } catch (NTLMException ne) { try { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/unix/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java --- a/jdk/src/java.base/unix/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/unix/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java Thu Apr 21 13:39:53 2016 +0200 @@ -26,7 +26,6 @@ package sun.nio.ch; import java.nio.channels.spi.AsynchronousChannelProvider; -import java.security.AccessController; import sun.security.action.GetPropertyAction; /** @@ -60,8 +59,7 @@ * Returns the default AsynchronousChannelProvider. */ public static AsynchronousChannelProvider create() { - String osname = AccessController - .doPrivileged(new GetPropertyAction("os.name")); + String osname = GetPropertyAction.getProperty("os.name"); if (osname.equals("SunOS")) return createProvider("sun.nio.ch.SolarisAsynchronousChannelProvider"); if (osname.equals("Linux")) diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/unix/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java --- a/jdk/src/java.base/unix/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/unix/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java Thu Apr 21 13:39:53 2016 +0200 @@ -31,7 +31,6 @@ import java.util.concurrent.*; import java.io.IOException; import java.io.FileDescriptor; -import java.security.AccessController; import sun.net.NetHooks; import sun.security.action.GetPropertyAction; @@ -47,8 +46,8 @@ private static final boolean disableSynchronousRead; static { - String propValue = AccessController.doPrivileged( - new GetPropertyAction("sun.nio.ch.disableSynchronousRead", "false")); + String propValue = GetPropertyAction + .getProperty("sun.nio.ch.disableSynchronousRead", "false"); disableSynchronousRead = (propValue.length() == 0) ? true : Boolean.valueOf(propValue); } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/unix/classes/sun/nio/fs/DefaultFileSystemProvider.java --- a/jdk/src/java.base/unix/classes/sun/nio/fs/DefaultFileSystemProvider.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/unix/classes/sun/nio/fs/DefaultFileSystemProvider.java Thu Apr 21 13:39:53 2016 +0200 @@ -26,7 +26,6 @@ package sun.nio.fs; import java.nio.file.spi.FileSystemProvider; -import java.security.AccessController; import sun.security.action.GetPropertyAction; /** @@ -55,8 +54,7 @@ * Returns the default FileSystemProvider. */ public static FileSystemProvider create() { - String osname = AccessController - .doPrivileged(new GetPropertyAction("os.name")); + String osname = GetPropertyAction.getProperty("os.name"); if (osname.equals("SunOS")) return createProvider("sun.nio.fs.SolarisFileSystemProvider"); if (osname.equals("Linux")) diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/unix/classes/sun/nio/fs/UnixFileSystem.java --- a/jdk/src/java.base/unix/classes/sun/nio/fs/UnixFileSystem.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/unix/classes/sun/nio/fs/UnixFileSystem.java Thu Apr 21 13:39:53 2016 +0200 @@ -31,7 +31,6 @@ import java.io.IOException; import java.util.*; import java.util.regex.Pattern; -import java.security.AccessController; import sun.security.action.GetPropertyAction; /** @@ -57,8 +56,8 @@ // if process-wide chdir is allowed or default directory is not the // process working directory then paths must be resolved against the // default directory. - String propValue = AccessController.doPrivileged( - new GetPropertyAction("sun.nio.fs.chdirAllowed", "false")); + String propValue = GetPropertyAction + .getProperty("sun.nio.fs.chdirAllowed", "false"); boolean chdirAllowed = (propValue.length() == 0) ? true : Boolean.valueOf(propValue); if (chdirAllowed) { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/windows/classes/java/io/WinNTFileSystem.java --- a/jdk/src/java.base/windows/classes/java/io/WinNTFileSystem.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/windows/classes/java/io/WinNTFileSystem.java Thu Apr 21 13:39:53 2016 +0200 @@ -25,8 +25,8 @@ package java.io; -import java.security.AccessController; import java.util.Locale; +import java.util.Properties; import sun.security.action.GetPropertyAction; /** @@ -42,10 +42,9 @@ private final char semicolon; public WinNTFileSystem() { - slash = AccessController.doPrivileged( - new GetPropertyAction("file.separator")).charAt(0); - semicolon = AccessController.doPrivileged( - new GetPropertyAction("path.separator")).charAt(0); + Properties props = GetPropertyAction.getProperties(); + slash = props.getProperty("file.separator").charAt(0); + semicolon = props.getProperty("path.separator").charAt(0); altSlash = (this.slash == '\\') ? '/' : '\\'; } diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/windows/classes/java/net/DefaultDatagramSocketImplFactory.java --- a/jdk/src/java.base/windows/classes/java/net/DefaultDatagramSocketImplFactory.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/windows/classes/java/net/DefaultDatagramSocketImplFactory.java Thu Apr 21 13:39:53 2016 +0200 @@ -24,8 +24,7 @@ */ package java.net; -import java.security.AccessController; -import java.security.PrivilegedAction; +import java.util.Properties; import sun.security.action.GetPropertyAction; /** @@ -57,12 +56,11 @@ static { Class prefixImplClassLocal = null; + Properties props = GetPropertyAction.getProperties(); preferIPv4Stack = Boolean.parseBoolean( - AccessController.doPrivileged( - new GetPropertyAction("java.net.preferIPv4Stack"))); + props.getProperty("java.net.preferIPv4Stack")); - String exclBindProp = AccessController.doPrivileged( - new GetPropertyAction("sun.net.useExclusiveBind", "")); + String exclBindProp = props.getProperty("sun.net.useExclusiveBind", ""); exclusiveBind = (exclBindProp.isEmpty()) ? true : Boolean.parseBoolean(exclBindProp); @@ -70,8 +68,7 @@ // impl.prefix String prefix = null; try { - prefix = AccessController.doPrivileged( - new GetPropertyAction("impl.prefix", null)); + prefix = props.getProperty("impl.prefix"); if (prefix != null) prefixImplClassLocal = Class.forName("java.net."+prefix+"DatagramSocketImpl"); } catch (Exception e) { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java --- a/jdk/src/java.base/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java Thu Apr 21 13:39:53 2016 +0200 @@ -34,6 +34,7 @@ import sun.net.www.protocol.http.AuthenticationInfo; import sun.net.www.protocol.http.AuthScheme; import sun.net.www.protocol.http.HttpURLConnection; +import sun.security.action.GetPropertyAction; /** * NTLMAuthentication: @@ -52,9 +53,8 @@ private static String defaultDomain; /* Domain to use if not specified by user */ static { - defaultDomain = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("http.auth.ntlm.domain", - "domain")); + defaultDomain = GetPropertyAction.getProperty("http.auth.ntlm.domain", + "domain"); }; private void init0() { diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/windows/classes/sun/nio/ch/FileDispatcherImpl.java --- a/jdk/src/java.base/windows/classes/sun/nio/ch/FileDispatcherImpl.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/windows/classes/sun/nio/ch/FileDispatcherImpl.java Thu Apr 21 13:39:53 2016 +0200 @@ -27,9 +27,9 @@ import java.io.FileDescriptor; import java.io.IOException; -import java.security.PrivilegedAction; import jdk.internal.misc.SharedSecrets; import jdk.internal.misc.JavaIOFileDescriptorAccess; +import sun.security.action.GetPropertyAction; class FileDispatcherImpl extends FileDispatcher { @@ -119,13 +119,8 @@ } static boolean isFastFileTransferRequested() { - String fileTransferProp = java.security.AccessController.doPrivileged( - new PrivilegedAction() { - @Override - public String run() { - return System.getProperty("jdk.nio.enableFastFileTransfer"); - } - }); + String fileTransferProp = GetPropertyAction + .getProperty("jdk.nio.enableFastFileTransfer"); boolean enable; if ("".equals(fileTransferProp)) { enable = true; diff -r c80f098887f4 -r 824750ada3d6 jdk/src/java.base/windows/classes/sun/nio/fs/WindowsFileAttributes.java --- a/jdk/src/java.base/windows/classes/sun/nio/fs/WindowsFileAttributes.java Thu Apr 21 14:56:40 2016 +0800 +++ b/jdk/src/java.base/windows/classes/sun/nio/fs/WindowsFileAttributes.java Thu Apr 21 13:39:53 2016 +0200 @@ -27,7 +27,6 @@ import java.nio.file.attribute.*; import java.util.concurrent.TimeUnit; -import java.security.AccessController; import jdk.internal.misc.Unsafe; import sun.security.action.GetPropertyAction; @@ -115,8 +114,8 @@ // indicates if accurate metadata is required (interesting on NTFS only) private static final boolean ensureAccurateMetadata; static { - String propValue = AccessController.doPrivileged( - new GetPropertyAction("sun.nio.fs.ensureAccurateMetadata", "false")); + String propValue = GetPropertyAction + .getProperty("sun.nio.fs.ensureAccurateMetadata", "false"); ensureAccurateMetadata = (propValue.length() == 0) ? true : Boolean.valueOf(propValue); }