On 19/07/2019 15:00, Severin Gehwolf wrote:
:
Sure. By adding a method also accepting a default value it would work
as well. If that's preferred, I can change it:

diff --git a/test/lib/jdk/test/lib/Platform.java 
b/test/lib/jdk/test/lib/Platform.java
--- a/test/lib/jdk/test/lib/Platform.java
+++ b/test/lib/jdk/test/lib/Platform.java
@@ -37,8 +37,7 @@
      // E.g.: "/usr/local/bin/docker". We define this constant here so
      // that it can be used in VMProps as well which checks docker support
      // via this command
-    public static final String DOCKER_COMMAND =
-        System.getProperty("jdk.test.docker.command", "docker");
+    public  static final String DOCKER_COMMAND = 
privilegedGetProperty("jdk.test.docker.command", "docker");
      public  static final String vmName      = 
privilegedGetProperty("java.vm.name");
      public  static final String vmInfo      = 
privilegedGetProperty("java.vm.info");
      private static final String osVersion   = 
privilegedGetProperty("os.version");
@@ -57,6 +56,11 @@
                  PrivilegedAction<String>) () -> System.getProperty(key));
      }
+ private static String privilegedGetProperty(String key, String defVal) {
+        return AccessController.doPrivileged((
+                PrivilegedAction<String>) () -> System.getProperty(key, 
defVal));
+    }
+
      public static boolean isClient() {
          return vmName.endsWith(" Client VM");
      }

Alan suggested the approach in webrev 01.

Using privilegedGetProperty is okay as long as the test classes are granted permission to read this property. You should be able to verify that quickly by running a few tests that come with their own policy files.

In passing, the cast privilegedGetProperty methods is a bit ugly, this might be a bit cleaner:

PrivilegedAction<String> pa = () -> System.getProperty(key, defaultValue);
return AccessController.doPrivileged(pa);

-Alan.

Reply via email to