<i18n dev> [15] RFR: 8245241: Incorrect locale provider preference is not logged
naoto.sato at oracle.com
naoto.sato at oracle.com
Wed May 20 23:49:55 UTC 2020
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