RFR: 8228434: jdk/net/Sockets/Test.java fails after JDK-8227642

Alan Bateman Alan.Bateman at oracle.com
Fri Jul 19 14:14:08 UTC 2019



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.



More information about the core-libs-dev mailing list