[11] Review request : JDK-8195806 : Eliminate dependency on sun.font.lookup in javafx.graphics
Kevin Rushforth
kevin.rushforth at oracle.com
Wed Feb 28 00:00:49 UTC 2018
This looks fine to me. Please add this info to JBS when you get a
chance, and also link the new bug to this bug.
The fix looks fine to me, although I was puzzled by the following:
- return
- System.getProperty("java.home","") + File.separator +
- "lib" + File.separator + "fonts" + File.separator;
+ return System.getProperty("java.home","") + File.separator +
+ "lib" + File.separator + "fonts";
Your fix preserves existing behavior, given that the return value from
the now-eliminated call to the JDKFontLookup class did not have the
trailing File.separator, but I think that might be a bug given how the
returned string from this method is used elsewhere in this file. Since
this is preexisting, you might choose to address that as well in the
follow-up bug (JDK-8198752). If so, please add a comment to that bug.
+1 from me (you need a +1 from Phil as well)
-- Kevin
Ajit Ghaisas wrote:
>
> Hi Phil,
>
>
>
> All my webrev does is to replace the way of obtaining name of JDK
> font directory – and as rightly pointed by you below (first two lines
> of your last reply) – it is what is needed to get rid of dependency on
> sun.font.lookup.
>
> I have tested it by running an OpenJDK build that doesn't contain a
> lib/fonts directory using Ensemble8 sample.
>
>
>
> I got your point about Lucida Sans fonts being pointless with
> openJDK & the font finding fallback code is being little dubious.
>
> I would like to address that separately. I have filed bug
> JDK-8198752 <https://bugs.openjdk.java.net/browse/JDK-8198752> to
> handle that.
>
>
>
> Regards,
>
> Ajit
>
>
>
> *From:* Phil Race
> *Sent:* Thursday, February 15, 2018 10:44 PM
> *To:* Ajit Ghaisas
> *Cc:* Kevin Rushforth; openjfx-dev at openjdk.java.net
> *Subject:* Re: [11] Review request : JDK-8195806 : Eliminate
> dependency on sun.font.lookup in javafx.graphics
>
>
>
> This part is probably as good as you can do
>
> + return System.getProperty("java.home","") + File.separator +
> + "lib" + File.separator + "fonts";
>
>
> but if we want to support running against OpenJDK which does not have
> Lucida Sans
> then we need to look at the caller of getJDKFontDir()
>
> So going forward all of this ..
>
> private static final String jreDefaultFont = "Lucida Sans Regular";
> private static final String jreDefaultFontLC = "lucida sans regular";
> private static final String jreDefaultFontFile = "LucidaSansRegular.ttf";
>
> .. is probably pointless.
>
> And if we can't find it then the first layer of fall back code is a
> bit dubious
>
> // Normally use the JRE default font as the last fallback.
> // If we can't find even that, use any platform font;
> for (String font : fontToFileMap.keySet()) {
> String file = findFile(font); // gets full path
> fontResource = createFontResource(jreDefaultFontLC, file);
> if (fontResource != null) {
> break;
> }
>
> It did not really matter in the past .. it was just to prevent NPE in an unlikely scenario ..
> But if it is to be the first class way of finding this font it probably should be using
> "System" instead ? But then you need to make sure we don't have a circularity in the case
> that we are using this in initialiasing System.
>
> -phil.
>
>
>
> On 02/14/2018 09:39 PM, Ajit Ghaisas wrote:
>
> Hi Phil,
>
>
>
> Thanks for having a look at the changes.
>
>
>
> I have little difficulty in understanding your question.
>
> Are you referring to the sun.font.SunFontManager initialization?
>
> I am asking as it is not evident from the code changes that I have done as part of this webrev.
>
>
>
> Request your guidance in this regard.
>
>
>
> Regards,
>
> Ajit
>
>
>
>
>
> -----Original Message-----
>
> From: Philip Race
>
> Sent: Wednesday, February 14, 2018 12:52 PM
>
> To: Ajit Ghaisas
>
> Cc: Kevin Rushforth; openjfx-dev at openjdk.java.net <mailto:openjfx-dev at openjdk.java.net>
>
> Subject: Re: [11] Review request : JDK-8195806 : Eliminate dependency on sun.font.lookup in javafx.graphics
>
>
>
> Well that removes the dependency but how are you fixing the problem of how else to find the font ?
>
> There needs to be alternate code or you need to go back to see what would happen if some code tried to locate that font and how it would fail.
>
>
>
> -phil.
>
>
>
> On 2/13/18, 11:11 PM, Ajit Ghaisas wrote:
>
> Hi Kevin, Phil,
>
>
>
> Request you to review following fix :
>
>
>
> Issue : https://bugs.openjdk.java.net/browse/JDK-8195806
>
>
>
> Fix :
>
> http://cr.openjdk.java.net/~aghaisas/fx/8195806/webrev.0/ <http://cr.openjdk.java.net/%7Eaghaisas/fx/8195806/webrev.0/>
>
>
>
> Regards,
>
> Ajit
>
>
>
More information about the openjfx-dev
mailing list