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 ...
-phil.
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.
Daniel
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;
return;