src/java.desktop/share/classes/java/awt/GraphicsEnvironment.java

Print this page

        

@@ -26,10 +26,11 @@
 
 package java.awt;
 
 import java.awt.image.BufferedImage;
 import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.Locale;
 
 import sun.font.FontManager;
 import sun.font.FontManagerFactory;
 import sun.java2d.HeadlessGraphicsEnvironment;

@@ -159,13 +160,11 @@
      * @return the value of the property "java.awt.headless"
      * @since 1.4
      */
     private static boolean getHeadlessProperty() {
         if (headless == null) {
-            java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Object>() {
-                public Object run() {
+            AccessController.doPrivileged((PrivilegedAction<Object>) () -> {
                     String nm = System.getProperty("java.awt.headless");
 
                     if (nm == null) {
                         /* No need to ask for DISPLAY when run in a browser */
                         if (System.getProperty("javaplugin.version") != null) {

@@ -175,31 +174,28 @@
                             if (osName.contains("OS X") && "sun.awt.HToolkit".equals(
                                     System.getProperty("awt.toolkit")))
                             {
                                 headless = defaultHeadless = Boolean.TRUE;
                             } else {
+                            final String display = System.getenv("DISPLAY");
                                 headless = defaultHeadless =
-                                    Boolean.valueOf(("Linux".equals(osName) ||
+                                ("Linux".equals(osName) ||
                                                      "SunOS".equals(osName) ||
                                                      "FreeBSD".equals(osName) ||
                                                      "NetBSD".equals(osName) ||
                                                      "OpenBSD".equals(osName) ||
                                                      "AIX".equals(osName)) &&
-                                                     (System.getenv("DISPLAY") == null));
+                                 (display == null || display.isEmpty());
                             }
                         }
-                    } else if (nm.equals("true")) {
-                        headless = Boolean.TRUE;
                     } else {
-                        headless = Boolean.FALSE;
+                    headless = "true".equals(nm);
                     }
                     return null;
+            });
                 }
-                }
-            );
-        }
-        return headless.booleanValue();
+        return headless;
     }
 
     /**
      * Check for headless state and throw HeadlessException if headless
      * @since 1.4