IIRC, libfontconfig is also fairly standalone and portable, so when it's
not there, it shouldn't be too hard to compile it.

A while ago I contemplated and started to implement fontconfig in pure
Java, which is not rocket science either, but then lost interest or time
or both.

Cheers, Roman


Am Dienstag, den 19.07.2011, 11:05 -0700 schrieb Phil Race:
> PPS  SFAIK all JDK7 supported configs have libfontconfig so
> I've in fact contemplated for JDk 8 making libfontconfig a compile time 
> dependency.
> Would that be a major problem ?
> We really are that dependent on it now,  and its such an integral part 
> of the
> way Gnome and KDE desktops work we should be able to assume its
> there just like libX11.so ..
> 
> Anyway I filed
> 7068471: NPE in sun.font.FontConfigManager.getFontConfigFont() when 
> libfontconfig.so is not installed
> 
> -phil.
> 
> On 7/19/2011 9:29 AM, Phil Race wrote:
> > PS .. are you running a pure openjdk build or are you running a build 
> > which
> > includes the proprietary Lucida fonts.
> > Do you have a  fontconfig.properties which is customised for AIX ?
> >
> > If you eliminate both of those, as would be the typical Linux OpenJDK 
> > case,
> > I think it quite likely that without libfontconfig you'll see JDK fall 
> > flat on
> > its face due to not being able to locate any fonts at all.
> >
> > -phil.
> >
> > On 7/18/2011 5:06 PM, Phil Race wrote:
> >> On 7/18/11 4:13 PM, Steve Poole wrote:
> >>> On 18/07/11 23:14, Phil Race wrote:
> >>>> Ah you said it was AIX, not Linux. Still,  it should have that 
> >>>> library installed
> >>>> even if the de-ref is fixed.
> >>>>
> >>> Not on AIX - its completely optional - and as far we can tell (other 
> >>> than this particular problem) nothing else bad happens.
> >> If that's optional I assume a lot more is optional that needs to be 
> >> installed
> >> for a GUI app. But JDK on all unix flavours is very reliant on 
> >> fontconfig to find
> >> font files. I suggest to make fontconfig a pre-requisite for Java on 
> >> AIX. Even server
> >> apps use fonts more often than you'd expect.
> >>
> >> I didn't mean to just "cc" 2d, but to disconnect the discussion from 
> >> core-libs
> >> since its not related to core-libs in way at all.
> >> Yes, its 2d because its font, I'm actually surprised that is a 
> >> surprise ...
> >>
> >> -phil.
> >>
> >>>   Having said that I would expect customers to install the package - 
> >>> this fix is simply a belt and braces change.
> >>> I don't know why the attachment is missing  - here it is inline:
> >>> ---
> >>> 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
> >>> @@ -348,6 +348,8 @@
> >>>
> >>>          initFontConfigFonts(false);
> >>>
> >>> +    if(fontConfigFonts==null) return null; // init failed
> >>> +
> >>>          FcCompFont fcInfo = null;
> >>>          for (int i=0; i<fontConfigFonts.length; i++) {
> >>>              if (name.equals(fontConfigFonts[i].fcFamily) &&
> >>> ---
> >>>
> >>> By the way - why is this 2d?  because it's font?    Anyway I've cc'd 
> >>> 2d-dev as you suggest.  Thanks for the quick response.
> >>>
> >>>
> >>>> -phil.
> >>>>
> >>>> On 7/18/2011 3:12 PM, Phil Race wrote:
> >>>>> 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
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
> 
> 


Reply via email to