[OpenJDK 2D-Dev] [13] JDK-8219901: Noto fonts for East Asian countries cannot belong to CompositeFont
Phil Race
philip.race at oracle.com
Thu Apr 25 22:22:44 UTC 2019
The test fails for me when I set the Japanese locale. I am using Ubuntu
16.04.
Have you done any locale testing ?
env|grep LANG
LANG=ja_JP.UTF-8
GDM_LANG=ja_JP
LANGUAGE=ja_JP.UTF-8
$ ~/jdk-client/build/linux-x86_64-server-release/jdk/bin/java
FCCompositeTest
PF=Noto Sans Mono CJK JP Regular
FC=Noto Sans Mono CJK JP Regular
PF=TakaoPGothic
FC=Takao P????????????
java.lang.RuntimeException: FullName mismatch: TakaoPGothic,Takao
P????????????
at FCCompositeTest.test(FCCompositeTest.java:92)
at FCCompositeTest.main(FCCompositeTest.java:52)
Exception in thread "main" java.lang.RuntimeException: Method invocation
exception
at FCCompositeTest.test(FCCompositeTest.java:97)
at FCCompositeTest.main(FCCompositeTest.java:52)
-phil.
On 4/23/19 3:14 AM, Toshio 5 Nakamura wrote:
> I apologize if my poor description caused confusion.
> Hi Jay,
> Thank you so much for your review.
> Hi phil,
> I'm looking forward to hearing your results.
> Noto font is expected to be used more widely, and I'm eager to fix
> this problem.
> I welcome any suggestions or comments.
> Thanks,
> Toshio Nakamura
>
> ----- Original message -----
> From: Jayathirth Rao <jayathirth.d.v at oracle.com>
> To: Toshio 5 Nakamura <TOSHIONA at jp.ibm.com>
> Cc: Philip Race <philip.race at oracle.com>, 2d-dev at openjdk.java.net
> Subject: Re: [OpenJDK 2D-Dev] [13] JDK-8219901: Noto fonts for
> East Asian countries cannot belong to CompositeFont
> Date: Tue, Apr 9, 2019 3:26 PM
>
> Hi,
> (Ignore the previous mail received with less info)
> Observations:
> I went through different FontConfiguration & FontManager
> implementations and I see that in case of fontConfig(linux) only
> we are encoding/decoding CompositeFonts in a unique way(In case
> of font config we override get2DCompositeFontInfo()). For other
> platforms we use parent get2DCompositeFontInfo() where we are
> populating face names using getFaceNameFromComponentFontName().
> Also getDefaultPlatformFont() returns predetermined face names in
> case of Windows and Mac.
> For Linux changes made in FontConfiguration and FontManager looks
> fine.
> Thanks,
> Jay
>> On 04-Apr-2019, at 6:14 PM, Toshio 5 Nakamura
>> <TOSHIONA at jp.ibm.com <mailto:TOSHIONA at jp.ibm.com>> wrote:
>> Hi phil, Jay,
>> Thank you for taking your time to review this patch.
>> Thanks,
>> Toshio Nakamura
>>
>> ----- Original message -----
>> From: Jayathirth Rao <jayathirth.d.v at oracle.com
>> <mailto:jayathirth.d.v at oracle.com>>
>> To: TOSHIONA at jp.ibm.com <mailto:TOSHIONA at jp.ibm.com>
>> Cc: 2d-dev <2d-dev at openjdk.java.net
>> <mailto:2d-dev at openjdk.java.net>>
>> Subject: Re: [OpenJDK 2D-Dev] [13] JDK-8219901: Noto fonts
>> for East Asian countries cannot belong to CompositeFont
>> Date: Thu, Apr 4, 2019 8:43 PM
>>
>> Hi,
>> I am also taking a look at this.
>> I will update my observations soon.
>> Thanks,
>> Jay
>>> On 04-Apr-2019, at 8:23 AM, Philip Race
>>> <philip.race at oracle.com <mailto:philip.race at oracle.com>> wrote:
>>> I will get back to this soon but you will still need a 2nd
>>> reviewer.
>>>
>>> -phil.
>>>
>>> On 3/25/19, 12:29 AM, Toshio 5 Nakamura wrote:
>>>> Hi Phil,
>>>> Just a gentle reminder, I appreciate it if you have a time
>>>> to look at this.
>>>> Thanks,
>>>> Toshio Nakamura
>>>>
>>>> ----- Original message -----
>>>> From: "Toshio 5 Nakamura" <TOSHIONA at jp.ibm.com>
>>>> <mailto:TOSHIONA at jp.ibm.com>
>>>> Sent by: "2d-dev" <2d-dev-bounces at openjdk.java.net>
>>>> <mailto:2d-dev-bounces at openjdk.java.net>
>>>> To: Philip Race <philip.race at oracle.com>
>>>> <mailto:philip.race at oracle.com>
>>>> Cc: 2d-dev <2d-dev at openjdk.java.net>
>>>> <mailto:2d-dev at openjdk.java.net>
>>>> Subject: Re: [OpenJDK 2D-Dev] [13] JDK-8219901: Noto
>>>> fonts for East Asian countries cannot belong to
>>>> CompositeFont
>>>> Date: Mon, Mar 11, 2019 9:58 PM
>>>>
>>>> Hi Phil,
>>>>
>>>> Thank you so much for your reviewing.
>>>>
>>>> Yes, "family" part can be removed with a few changes in
>>>> "src/java.desktop/unix/classes/sun/awt/FcFontManager.java".
>>>>
>>>> The updated webrev is:
>>>> http://cr.openjdk.java.net/~tnakamura/8219901/webrev.01
>>>> <http://cr.openjdk.java.net/%7Etnakamura/8219901/webrev.01>/
>>>>
>>>> > So you don't need to clean everything - just your
>>>> develop -internal
>>>> > and -ea folders.
>>>> Yes, thank you for the clarification.
>>>>
>>>> Thanks,
>>>> Toshio Nakamura
>>>>
>>>> Philip Race <philip.race at oracle.com>
>>>> <mailto:philip.race at oracle.com> wrote on 2019/03/10
>>>> 18:05:18:
>>>>
>>>> > From: Philip Race <philip.race at oracle.com>
>>>> <mailto:philip.race at oracle.com>
>>>> > To: Toshio 5 Nakamura <TOSHIONA at jp.ibm.com>
>>>> <mailto:TOSHIONA at jp.ibm.com>
>>>> > Cc: 2d-dev <2d-dev at openjdk.java.net>
>>>> <mailto:2d-dev at openjdk.java.net>
>>>> > Date: 2019/03/10 18:05
>>>> > Subject: Re: [OpenJDK 2D-Dev] [13] JDK-8219901: Noto
>>>> fonts for East
>>>> > Asian countries cannot belong to CompositeFont
>>>> >
>>>> > 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
>>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/2d-dev/attachments/20190425/ea618101/attachment-0001.html>
More information about the 2d-dev
mailing list