You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Egidijus Vaisnora (JIRA)" <ji...@apache.org> on 2013/10/30 17:43:28 UTC

[jira] [Commented] (WW-4237) Locale is not fetched correctly if array of locales is passed

    [ https://issues.apache.org/jira/browse/WW-4237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13809311#comment-13809311 ] 

Egidijus Vaisnora commented on WW-4237:
---------------------------------------

I propose something like this (instead of confition ((Object[]) requestedLocale).length == 1):
{code}
private Object findLocaleParameter(Map<String, Object> params, String parameterName) {
        Object requestedLocale = params.remove(parameterName);
        if (requestedLocale != null && requestedLocale.getClass().isArray()
                && ((Object[]) requestedLocale).length > 0) {
            requestedLocale = ((Object[]) requestedLocale)[0];

            if (LOG.isDebugEnabled()) {
                LOG.debug("requested_locale=#0", requestedLocale);
            }
        }
        return requestedLocale;
    }
{code}

> Locale is not fetched correctly if array of locales is passed
> -------------------------------------------------------------
>
>                 Key: WW-4237
>                 URL: https://issues.apache.org/jira/browse/WW-4237
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Interceptors
>    Affects Versions: 2.3.15.1
>            Reporter: Egidijus Vaisnora
>
> If there is passed several parameters "request_only_locale", then I18nInterceptor creates and sets locale which is equals Array.toString.
> I18nInterceptor.findLocaleParameter checks for array but also checks that array should be of the length == 1. If it is more than one, then no value is fetched but whole array.



--
This message was sent by Atlassian JIRA
(v6.1#6144)