[
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.