commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oliver Heger (JIRA)" <>
Subject [jira] [Commented] (LANG-511) Initialization of available locales in LocaleUtils can be deferred
Date Wed, 23 May 2012 19:57:41 GMT


Oliver Heger commented on LANG-511:

The fields in the {{SyncAvoid}} class should probably be *final*. Then the approach would
be complient to the _lazy initialization holder class idiom for static fields_ as described
in Blochs "Effective Java", item 71.
> Initialization of available locales in LocaleUtils can be deferred
> ------------------------------------------------------------------
>                 Key: LANG-511
>                 URL:
>             Project: Commons Lang
>          Issue Type: Improvement
>          Components: lang.*
>    Affects Versions: 2.4
>            Reporter: Oliver Heger
>            Priority: Minor
>             Fix For: 2.5
> {{LocaleUtils}} has a static initializer block that initializes the list of locales available
in the system. This is done by calling {{Locale.getAvailableLocales()}}.
> As I had to learn, {{getAvailableLocales()}} can be very expensive, depending on the
environment in which it is called. Obviously, all jars in the class path are scanned to determine
the supported locales. In our project we have a large number of jars on the class path, and
the invocation of the method takes between 10 and 20 seconds. There is an entry in the Java
Bug Database related to this issue:
> {{LocaleUtils}} contains some methods that do not need the list of available locales
(and in fact it is one of those methods we would like to use). So I wonder whether the initialization
of the list of available locales could be done on demand. It would then have to be synchronized,
but the advantage is that the expensive initialization is only performed if it is actually
> (LANG-488 is also related to this topic.)

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message