I agree that embeded is the only place it should happen.
On a Linux desktop system if fontconfig isn't there then likely your entire desktop is DOA.
And embedded is likely to be an integrated h/w & s/w stack so I would
expect that this would not be a common end-user problem ...


On 2/12/2014 2:45 PM, Daniel Blaukopf wrote:
Unless someone has removed font files from the Java directory tree - in which 
case all bets are off - this won’t happen with the JRE or JDK for any platform. 
It will only happen with Java SE Embedded Compact Profiles. So referring them 
to “the release notes for Java SE Embedded” seems reasonable. We can verify 
with the version system properties that this is actually SE Embedded before 
showing that message.

On Feb 12, 2014, at 1:53 PM, Kevin Rushforth <kevin.rushfo...@oracle.com> wrote:

A more informative message and an earlier detection both sound good. Not sure about the 
pointer to the Wiki page, though. We haven't done that in the past that I am aware of. If 
we do want to go down that path, I would suggest a pointer to a single, 
"well-known" support page that could describe various end-user configuration 
issues that we might want to document.

-- Kevin

David Hill wrote:
I am chasing a edge case that probably only happens in certain Embedded 
configurations. If we don't find *any* fonts, then we quietly fail and blame it 
on CSS :-)

I say blame it on CSS because the resulting hard failure is:
Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: 
Could not initialize class javafx.scene.CssStyleHelper
This is because CSS needs a font for various calculations.

With Embedded, if libfontconfig is not present (or improperly configured) you 
will not find any fonts.

I would like thoughts on my putting a more informative error message out, and 
making zero fonts an earlier hard failure.

What I would really like to do is to be able to put a URL to a Fonts wiki page 
(like: https://wiki.openjdk.java.net/display/OpenJFX/Font+Setup) but not sure 
how well that would stand up to the test of time.

The code point in FontConfigManager is:

        if (anyFont == null) {
            if (debugFonts) {
                System.err.println("Fontconfig returned no fonts at all.");
            fontConfigFailed = true;

Reply via email to