[jboss-jira] [JBoss JIRA] (LOGTOOL-120) Locale is not used in the actual string format.

James Perkins (JIRA) issues at jboss.org
Fri Nov 18 18:57:00 EST 2016


James Perkins created LOGTOOL-120:
-------------------------------------

             Summary: Locale is not used in the actual string format.
                 Key: LOGTOOL-120
                 URL: https://issues.jboss.org/browse/LOGTOOL-120
             Project: Log Tool
          Issue Type: Bug
    Affects Versions: 2.0.1.Final
            Reporter: David Lloyd
            Assignee: James Perkins
            Priority: Minor
             Fix For: 2.0.2.Final, 2.1.0.Alpha1


The {{String.format()}} method accepts a Locale parameter.  We should be using the Locale of the implementation class.  Since the format method is called from a final method, we need a polymorphic way of getting the Locale instance; therefore, a protected method should be added to the generated base class like this:

{code}
    protected Locale getLoggingLocale() {
        return Locale.ROOT;
    }
{code}

Then each subclass should return a locale object specific to that class.  The locale object returned should either be one of the following:
* Locale.CANADA - for "en_CA"
* Locale.CANADA_FRENCH - for "fr_CA"
* Locale.CHINESE - for "zh"
* Locale.ENGLISH - for "en"
* Locale.FRANCE - for "fr_FR"
* Locale.FRENCH - for "fr"
* Locale.GERMAN - for "de"
* Locale.GERMANY - for "de_DE"
* Locale.ITALIAN - for "it"
* Locale.ITALY - for "it_IT"
* Locale.JAPAN	 - for "ja_JP"
* Locale.JAPANESE - for "ja"
* Locale.KOREA - for "ko_KR"
* Locale.KOREAN - for "ko"
* Locale.SIMPLIFIED_CHINESE - for "zh_CN"
* Locale.TRADITIONAL_CHINESE - for "zh_TW"
* Locale.UK - for "en_GB"
* Locale.US - for "en_US"

If the locale is not one of the above, then the correct Locale should be created in a private constant field of the class like this:

{code}
    private static final Locale LOCALE = new Locale("hu");
    // or...
    private static final Locale LOCALE = new Locale("hu", "HU");
    // or...
    private static final Locale LOCALE = new Locale("hu", "HU", "technl");
    // ...and then...
    @Override
    protected Locale getLoggingLocale() {
        return LOCALE;
    }
{code}

Finally, all calls to {{format()}} should be rewritten to use the locale *from the method* like this:

{code}
            final NamingException result = new NamingException(String.format(getLoggingLocale(), objectFromReference$str()));
{code}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jboss-jira mailing list