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


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