< prev index next >

test/lib/jdk/test/lib/OSVersion.java

Print this page
rev 51613 : 8210039: move OSInfo to top level testlibrary
Reviewed-by: duke
rev 51614 : imported patch 8210039-1

@@ -28,10 +28,13 @@
 import java.util.Arrays;
 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 
 public final class OSVersion implements Comparable<OSVersion> {
     public static final OSVersion WINDOWS_95 = new OSVersion(4, 0);
     public static final OSVersion WINDOWS_98 = new OSVersion(4, 10);
     public static final OSVersion WINDOWS_ME = new OSVersion(4, 90);

@@ -67,13 +70,15 @@
         } catch (Throwable e) {
             System.out.println("First attempt failed with: " + e.getMessage());
         }
 
         // Try to get Solaris version from /etc/release
-        try (BufferedReader in =
-                     new BufferedReader(new FileReader("/etc/release"))) {
+        try (BufferedReader in = new BufferedReader(AccessController.doPrivileged(
+                (PrivilegedExceptionAction<FileReader>) () -> new FileReader("/etc/release")))) {
             return in.readLine().trim().split(" ")[2];
+        } catch (PrivilegedActionException e) {
+            System.out.println("Second attempt failed with: " + e.getException().getMessage());
         } catch (Exception e) {
             System.out.println("Second attempt failed with: " + e.getMessage());
         }
 
         throw new RuntimeException("Unable to get Solaris version");
< prev index next >