You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Grant Smith (JIRA)" <de...@myfaces.apache.org> on 2006/10/06 00:08:21 UTC

[jira] Resolved: (MYFACES-1328) UISelectOne and UISelectMany fail with custom converter that returns java.lang.String from getAsObject() method.

     [ http://issues.apache.org/jira/browse/MYFACES-1328?page=all ]

Grant Smith resolved MYFACES-1328.
----------------------------------

    Resolution: Fixed

It turns out my application was missing <h:messages>, so of course, no validation message was reaching me. I'll close this, although I'm sure we're going to have a lot of users that got spoiled by having the convenient conversion. Still, we must follow the behaviour of the RI...

> UISelectOne and UISelectMany fail with custom converter that returns java.lang.String from getAsObject() method.
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-1328
>                 URL: http://issues.apache.org/jira/browse/MYFACES-1328
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 1.1.4-SNAPSHOT
>            Reporter: Alexey Maslov
>         Assigned To: Martin Marinschek
>             Fix For: 1.1.5-SNAPSHOT
>
>         Attachments: reproducer.zip
>
>
> The problem seems to be in javax.faces.component._SelectItemsUtil.matchValue(FacesContext context, Object value, Iterator selectItemsIter, _ValueConverter converter) method.
> Line 63-72:
>                 Object itemValue = item.getValue();
>                 if(converter != null && itemValue instanceof String)
>                 {
>                     itemValue = converter.getConvertedValue(context, (String)itemValue);
>                 }
>                 if (value==itemValue || value.equals(itemValue))
>                 {
>                     return true;
>                 }
> If item's value is java.lang.String then this code does duplicate conversion making matchValue() return false and subsequently resulting in error in calling method (validateValue() in javax.faces.component.UISelectOne and javax.faces.component.UISelectMany).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira