[OpenJDK 2D-Dev] NPE in X11FontManager.getDefaultPlatformFont

Jeremy Manson jeremymanson at google.com
Tue Jun 4 21:50:05 UTC 2013


Hi folks,

I encountered a NullPointerException in the above method, when fontconfig
doesn't return any fonts:

http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/7eae7c89dab4/src/solaris/classes/sun/awt/X11FontManager.java

Line 779.  The issue is that FontConfigManager sets fontConfigFonts to null
when Fontconfig doesn't return any fonts:

http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/7eae7c89dab4/src/solaris/classes/sun/font/FontConfigManager.java

Line 218.

The solution I came up with is to initialize fontConfigFonts with a
zero-element array in this case:

diff --git a/src/solaris/classes/sun/font/FontConfigManager.java
b/src/solaris/classes/sun/font/FontConfigManager.java
--- a/src/solaris/classes/sun/font/FontConfigManager.java
+++ b/src/solaris/classes/sun/font/FontConfigManager.java
@@ -216,6 +216,7 @@
                 logger.info("Fontconfig returned no fonts at all.");
             }
             fontConfigFailed = true;
+            fontConfigFonts = new FcCompFont[0];
             return;
         } else if (fontConfigFailed) {
             for (int i = 0; i< fontArr.length; i++) {

Thanks for your attention!

Jeremy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20130604/bb576151/attachment.html>


More information about the 2d-dev mailing list