[ 
https://issues.apache.org/jira/browse/WICKET-1484?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Igor Vaynberg resolved WICKET-1484.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.3.5
                   1.4-RC1
         Assignee: Igor Vaynberg

seems to be already fixed

> class cast exception (String) in MixedParamUrlCodingStrategy with additional 
> params with patch
> ----------------------------------------------------------------------------------------------
>
>                 Key: WICKET-1484
>                 URL: https://issues.apache.org/jira/browse/WICKET-1484
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.3.2
>            Reporter: Michael Grinner
>            Assignee: Igor Vaynberg
>             Fix For: 1.4-RC1, 1.3.5
>
>         Attachments: 1484_patch.txt
>
>
> MixedParamUrlCodingStrategy has a bug in
> MixedParamUrlCodingStrategy
> appendParameters
>               if (!parameterNamesToAdd.isEmpty())
>               {
>                       boolean first = true;
>                       final Iterator iterator;
>                       if (UnitTestSettings.getSortUrlParameters())
>                       {
>                               iterator = new 
> TreeSet(parameterNamesToAdd).iterator();
>                       }
>                       else
>                       {
>                               iterator = parameterNamesToAdd.iterator();
>                       }
>                       while (iterator.hasNext())
>                       {
>                               url.append(first ? '?' : '&');
>                               String parameterName = (String)iterator.next();
> @@@                   String value = (String)parameters.get(parameterName);
>                       
> url.append(urlEncode(parameterName)).append("=").append(urlEncode(value));
>                               first = false;
>                       }
>               }
> where value should be a String[] not a String.
> like in AbstractRequestTargetUrlCodingStrategy
> appendParameters
>       String[] values = (String[])value;
>       for (int i = 0; i < values.length; i++)
>       {
>               appendValue(url, entry.getKey().toString(), values[i]);
>       }
> it works ok after patching MixedParamUrlCodingStrategy to
>        if (!parameterNamesToAdd.isEmpty()) {
>            boolean first = true;
>            final Iterator iterator;
>            if (UnitTestSettings.getSortUrlParameters()) {
>                iterator = new TreeSet(parameterNamesToAdd).iterator();
>            } else {
>                iterator = parameterNamesToAdd.iterator();
>            }
>            while (iterator.hasNext()) {
>                url.append(first ? '?' : '&');
>                String parameterName = (String) iterator.next();
>                Object value = parameters.get(parameterName);
>                if (value != null) {
>                    if (value instanceof String[]) {
>                        String[] values = (String[]) value;
>                        for (String element : values) {
> url.append(this.urlEncode(parameterName)).append("=").append(this.urlEncode(element));
>                        }
>                    } else {
> url.append(this.urlEncode(parameterName)).append("=").append(this.urlEncode(value.toString()));
>                    }
>                }
>                first = false;
>            }
>        }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to