8039273: Font related files should not be modified in ${java.home}/lib
authorprr
Thu, 15 Dec 2016 14:30:12 -0800
changeset 42935 b98bdba7ce61
parent 42934 cd1c9fab50ca
child 42936 2b8cc27c159c
8039273: Font related files should not be modified in ${java.home}/lib Reviewed-by: serb, naoto
jdk/src/java.desktop/share/classes/sun/awt/FontConfiguration.java
--- a/jdk/src/java.desktop/share/classes/sun/awt/FontConfiguration.java	Thu Dec 15 20:09:13 2016 +0300
+++ b/jdk/src/java.desktop/share/classes/sun/awt/FontConfiguration.java	Thu Dec 15 14:30:12 2016 -0800
@@ -182,11 +182,17 @@
             throw new Error("java.home property not set");
         }
         javaLib = javaHome + File.separator + "lib";
+        String javaConfFonts = javaHome +
+                               File.separator + "conf" +
+                               File.separator + "fonts";
         String userConfigFile = System.getProperty("sun.awt.fontconfig");
         if (userConfigFile != null) {
             fontConfigFile = new File(userConfigFile);
         } else {
-            fontConfigFile = findFontConfigFile(javaLib);
+            fontConfigFile = findFontConfigFile(javaConfFonts);
+            if (fontConfigFile == null) {
+                fontConfigFile = findFontConfigFile(javaLib);
+            }
         }
     }
 
@@ -275,8 +281,11 @@
         return null;
     }
 
-    private File findFontConfigFile(String javaLib) {
-        String baseName = javaLib + File.separator + "fontconfig";
+    private File findFontConfigFile(String dir) {
+        if (!(new File(dir)).exists()) {
+            return null;
+        }
+        String baseName = dir + File.separator + "fontconfig";
         File configFile;
         String osMajorVersion = null;
         if (osVersion != null && osName != null) {