[
https://issues.apache.org/jira/browse/WICKET-2752?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Igor Vaynberg resolved WICKET-2752.
-----------------------------------
Resolution: Won't Fix
Assignee: Igor Vaynberg
calling setType(String.class) doesnt make sense since the model object type is
a collection subtype.
> ClassCastException in ListMultipleChoice when using setType()
> --------------------------------------------------------------
>
> Key: WICKET-2752
> URL: https://issues.apache.org/jira/browse/WICKET-2752
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.4.1
> Environment: Windows XP, java 1.6.0_18, Tomcat 6.0.24
> Reporter: Denis Bogdanas
> Assignee: Igor Vaynberg
> Priority: Minor
>
> If we call setType() on a ListMultipleChoice, it will lead to the following
> exception on form submit:
> java.lang.ClassCastException: java.lang.String cannot be cast to
> java.util.Collection
> at
> org.apache.wicket.markup.html.form.ListMultipleChoice.updateModel(ListMultipleChoice.java:327)
> etc.
> Example code:
> ListMultipleChoice<AT> listBox = new ListMultipleChoice<AT>(...);
> listBox.setRequired(true);
> listBox.setType(String.class);
> I found the cause using debug. The method FormComponent.convertInput()
> contains the following code:
> protected void convertInput()
> {
> if (typeName == null)
> {
> try
> {
> convertedInput =
> convertValue(getInputAsArray());
> }
> ...
> }
> else
> {
> ...
> try
> {
> convertedInput =
> (T)converter.convertToObject(getInput(), getLocale());
> }
> ...
> }
> }
> The input is processed as a single element instead of array when typeName ==
> null. I suppose the call setType() should be prohibited when the component
> doesn't use it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.