equal
deleted
inserted
replaced
37 import java.util.Objects; |
37 import java.util.Objects; |
38 import java.util.Optional; |
38 import java.util.Optional; |
39 import java.util.Set; |
39 import java.util.Set; |
40 import java.util.stream.Collectors; |
40 import java.util.stream.Collectors; |
41 import java.util.stream.Stream; |
41 import java.util.stream.Stream; |
|
42 import sun.security.action.GetPropertyAction; |
42 |
43 |
43 /** |
44 /** |
44 * A finder of modules. A {@code ModuleFinder} is used to find modules during |
45 * A finder of modules. A {@code ModuleFinder} is used to find modules during |
45 * <a href="Configuration.html#resolution">resolution</a> or |
46 * <a href="Configuration.html#resolution">resolution</a> or |
46 * <a href="Configuration.html#servicebinding">service binding</a>. |
47 * <a href="Configuration.html#servicebinding">service binding</a>. |
150 static ModuleFinder ofSystem() { |
151 static ModuleFinder ofSystem() { |
151 String home; |
152 String home; |
152 |
153 |
153 SecurityManager sm = System.getSecurityManager(); |
154 SecurityManager sm = System.getSecurityManager(); |
154 if (sm != null) { |
155 if (sm != null) { |
155 PrivilegedAction<String> pa = () -> System.getProperty("java.home"); |
156 PrivilegedAction<String> pa = new GetPropertyAction("java.home"); |
156 home = AccessController.doPrivileged(pa); |
157 home = AccessController.doPrivileged(pa); |
157 Permission p = new FilePermission(home + File.separator + "-", "read"); |
158 Permission p = new FilePermission(home + File.separator + "-", "read"); |
158 sm.checkPermission(p); |
159 sm.checkPermission(p); |
159 } else { |
160 } else { |
160 home = System.getProperty("java.home"); |
161 home = System.getProperty("java.home"); |