Mercurial > hg > graal-jvmci-8
changeset 24122:c6b5d927e67f
added Services.getSavedProperties (JDK-8177845)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Sat, 08 Apr 2017 16:11:10 +0200 |
parents | 813c28963a9e |
children | b64eba7f886a |
files | jvmci/jdk.vm.ci.services/src/jdk/vm/ci/services/Services.java |
diffstat | 1 files changed, 21 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/jvmci/jdk.vm.ci.services/src/jdk/vm/ci/services/Services.java Tue Apr 04 16:49:15 2017 +0200 +++ b/jvmci/jdk.vm.ci.services/src/jdk/vm/ci/services/Services.java Sat Apr 08 16:11:10 2017 +0200 @@ -22,10 +22,13 @@ */ package jdk.vm.ci.services; +import java.lang.reflect.Field; import java.util.Collections; import java.util.Formatter; +import java.util.Properties; import java.util.ServiceLoader; +import sun.misc.VM; import sun.reflect.Reflection; /** @@ -38,6 +41,24 @@ private Services() { } + /** + * Gets the system properties saved when {@link System} is initialized. The caller must not + * modify the returned value. + */ + public static Properties getSavedProperties() { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) { + sm.checkPermission(new JVMCIPermission()); + } + try { + Field savedPropsField = VM.class.getDeclaredField("savedProps"); + savedPropsField.setAccessible(true); + return (Properties) savedPropsField.get(null); + } catch (Exception e) { + throw new InternalError(e); + } + } + private static boolean jvmciEnabled = true; private static <S> Iterable<S> load0(Class<S> service) {