struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lukasz Lenart (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (WW-3762) XWorkBasicConverter doConvertToCollection causes ClassCastException if an item cannot be converted
Date Fri, 24 Feb 2012 08:12:48 GMT

    [ https://issues.apache.org/jira/browse/WW-3762?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13215481#comment-13215481
] 

Lukasz Lenart commented on WW-3762:
-----------------------------------

Can someone review the patch ?

I've extracted few dedicated convertors from XWorkBasicConvertor to allow override them by
users. You can implement your own TypeConverter and register it with struts.xml as follow:

{code:xml}
<bean type="com.opensymphony.xwork2.conversion.TypeConverter" name="collection" class="com.project.MyCollectionConverter"
scope="singleton"/>
{code}

If this is a good approach, I would like to extract all converters from XWorkBasicConverter
to all override them by users.

Also added Gabor's changes
                
> XWorkBasicConverter doConvertToCollection causes ClassCastException if an item cannot
be converted
> --------------------------------------------------------------------------------------------------
>
>                 Key: WW-3762
>                 URL: https://issues.apache.org/jira/browse/WW-3762
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Value Stack
>    Affects Versions: 2.3.1.2
>            Reporter: Pelladi Gabor
>            Assignee: Lukasz Lenart
>              Labels: patch
>             Fix For: 2.3.2
>
>         Attachments: WW-3762.diff, WW-3762.patch, example.txt
>
>
> My action has a property of type List<Integer> (same for other non-string types).
The action will later iterate over this property, and it gets a ClassCastException, because
the list (of type List<Integer>) contains a String.
> It is because XWorkBasicConverter.doConvertToCollection() converts the input string array
into an integer list. But if the input coming from the browser contains a value that cannot
be converted to a string, then the string "ognl.NoConversionPossible" is put into the list.
It is wrong, we should pay attention to the type of the list.
> I have attached a patch that does not put elements into the list that cannot be converted.
> I have also attached a file that contains a simple example for this bug.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message