FontConfig fails when optional system library is missing

Phil Race philip.race at oracle.com
Mon Jul 18 22:12:56 UTC 2011


Steve,

There's no attachment .. and this should be discussed on 2d-dev, not 
core-libs.

I do see in the code where the null de-ref can happen. This is some new 
JDK 7 code.
Although a system where the library is missing is basically DOA for 
client use.
I'd suspect you are running 32 bit JDK on a 64 bit Linux which hasn't had
the 32 bit libs installed. If so, likely you'll run into other problems too.

-phil.


On 7/18/2011 2:37 PM, Steve Poole wrote:
>
> Hi all, a problem was discovered on JDK7 when using the Nimbus L&F on 
> a system where libfontconfig.so was not installed (On AIX actually but 
> in theory on any unix system)
>
> Under the covers Nimbus uses the sun.font.FontConfigManager to 
> retrieve fonts. sun.font.FontConfigManager in turn is intended to use 
> (for a unix system) the libfontconfig.so system library if present.
>
> The code is intended to cope with the library being missing but it 
> unfortunately doesn't. A array is referenced without checking if it is 
> null. On systems where the system library is present this array is 
> never null but in this specific case the array is null and the 
> reference fails as follows.
>
>> Exception in thread "main" java.lang.NullPointerException
> at 
> sun.font.FontConfigManager.getFontConfigFont(FontConfigManager.java:352)
> at sun.awt.X11FontManager.getFontConfigFUIR(X11FontManager.java:817)
> at sun.font.FontUtilities.getFontConfigFUIR(FontUtilities.java:472)
> at javax.swing.plaf.nimbus.NimbusDefaults.<init>(NimbusDefaults.java:138)
> at 
> javax.swing.plaf.nimbus.NimbusLookAndFeel.<init>(NimbusLookAndFeel.java:100)
> at Nimbus.main(Nimbus.java:6)
>>
> The fix is trivial (see attached) and probably just tactical.
>
>
> Cheers,
>
> Steve
>




More information about the core-libs-dev mailing list