I can sponsor this but first :
You seem to have made "family" redundant but aren't removing it.
There's no point in writing it out if nothing uses it on reading.
So we should remove it unless you can explain why you think it should be
kept.
I don't think this (removing it) is a problem for backports or
compatibility of the
format since release name is part of the file name where we write the
information,
and such a file name will necessarily be a consequence of a feature or
update release
containing this fix.
Where it might be an issue is testing on 13-ea builds since they all report
that as the version string so for testing you may need to clean out your
~/.java/fonts/13-ea folder. The same is for your 13-internal private builds.
I think this is your point when you wrote :-
The cached font list is stored under ~/.java/fonts directory.
We should delete it before applying the fix.
So you don't need to clean everything - just your develop -internal
and -ea folders.
Meanwhile I tested it .. and it seemed OK but I am still trying to join
up all the dots to make sure it is all correct code-wise.
-phil
On 2/28/19, 3:21 PM, Toshio 5 Nakamura wrote:
Hi,
Could you review the fix and may I have a sponsor for it?
Bug: https://bugs.openjdk.java.net/browse/JDK-8219901
Webrev: http://cr.openjdk.java.net/~tnakamura/8219901/webrev.00/
<http://cr.openjdk.java.net/%7Etnakamura/8219901/webrev.00/>
Issue:
Even if Google Noto fonts[1] were installed and listed by fontconfig
library
on Linux, CompositeFont couldn't contain it.
Fix description:
"src/java.desktop/share/classes/sun/font/CompositeFont.java" (l. 296)
validates the target font by comparing names. But, the current code
compared FamilyName with FullName (Font.getFontName()).
Then, Noto font was treated as invalid.
"src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java"
should provide FullName.
The cached font list is stored under ~/.java/fonts directory.
We should delete it before applying the fix.
This fix is possible to change the default font, if CompositeFont
is used (especially under Ubuntu18.04 and East Asian settings).
But, I believe the fixed behavior is correct.
[1] https://www.google.com/get/noto/
Thanks,
Toshio Nakamura