diff options
Diffstat (limited to 'libjava/classpath/java/lang/System.java')
-rw-r--r-- | libjava/classpath/java/lang/System.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libjava/classpath/java/lang/System.java b/libjava/classpath/java/lang/System.java index ea84dba47e2..34bbfddc672 100644 --- a/libjava/classpath/java/lang/System.java +++ b/libjava/classpath/java/lang/System.java @@ -178,6 +178,23 @@ public final class System if (SecurityManager.current != null) SecurityManager.current.checkPermission (new RuntimePermission("setSecurityManager")); + + // java.security.Security's class initialiser loads and parses the + // policy files. If it hasn't been run already it will be run + // during the first permission check. That initialisation will + // fail if a very restrictive security manager is in force, so we + // preload it here. + if (SecurityManager.current == null) + { + try + { + Class.forName("java.security.Security"); + } + catch (ClassNotFoundException e) + { + } + } + SecurityManager.current = sm; } |