<i18n dev> [15] RFR: 8245241: Incorrect locale provider preference is not logged
Joe Wang
huizhe.wang at oracle.com
Thu May 21 01:09:20 UTC 2020
Hi Naoto,
Thanks for the explanation. I agree on the needs for maintaining
backward compatibility. The patch looks good me then.
Best,
Joe
On 5/20/2020 4:49 PM, naoto.sato at oracle.com wrote:
> Hi Joe, thanks for the review.
>
> On 5/20/20 4:10 PM, Joe Wang wrote:
>> Hi Naoto,
>>
>> I don't seem to see the DateFormat class or the getDateInstance
>> methods specify how errors may be handled (or logged). Is that stated
>> somewhere else?
>
> Description of the system property "java.locale.providers" is in the
> class description of java.util.spi.LocaleServiceProvider class, in
> which the possible provider names can only be
> CLDR/COMPAT/SPI/HOST/JRE. So possible error with this system property
> is user's typo of the provider names. Although the behavior is not
> described, wrong names have been simply ignored at runtime. The
> problem here is that user cannot tell that he's done typo, and this
> fix is exactly to address it.
>
>> In other cases, I see that you've changed it to throw
>> ServiceConfigurationError, that looks to me may be better than a log
>> as a configuration error (or specifying wrong provider) sounds to me
>> more severe than info.
>
> Those exceptions will never happen in normal situation, since those
> locations are loading SPI/HostLocaleProviderAdapter class(es) that are
> the JDK classes (classes/methods are known to exist).
> On the other hand, I kept exception handlers in LocaleProviderAdapter
> to generate Level.INFO log, as this is for the user's typo of the
> provider names (explained above). Again this should be ignored and
> replaced/continue with proper default behavior, and letting user know
> the typo. If this were throwing SCError, it would break compatibility.
>
>>
>> Of the three HostLocaleProviderAdapterImpl, the one for unix is
>> deleted, is there a specific reason?
>
> Because it is simply not necessary (empty class). It was meant to be
> implemented later, but the host provider on Unixes has never been
> requested. Probably because OS date/time/number settings in Unixes are
> less important to Java clients.
>
> HTH,
> Naoto
>
>>
>> Best,
>> Joe
>>
>> On 5/20/2020 10:29 AM, naoto.sato at oracle.com wrote:
>>> Hello,
>>>
>>> Please review the fix to the following issue:
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8245241
>>>
>>> The proposed changeset is located at:
>>>
>>> https://cr.openjdk.java.net/~naoto/8245241/webrev.00/
>>>
>>> Incorrect user-provided provider preference is supposed to be
>>> logged. However it is not so because it is using
>>> PlatformLogger(SurrogateLogger) which uses the default logging
>>> level. I changed it to use j.l.System's logger and bumped it to INFO
>>> level (it should notify the user by default). By taking this
>>> opportunity, I did some clean-up in locale provider adapter's
>>> logging related code as well.
>>>
>>> Naoto
>>
More information about the i18n-dev
mailing list