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

Reply via email to