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.