[
http://issues.apache.org/jira/browse/MYFACES-1295?page=comments#action_12436349
]
Martin Marinschek commented on MYFACES-1295:
--------------------------------------------
Ok, I'll add a bit more to the discussion - the corresponding code is in
_SharedRendererUtils; it's about changing the following segment:
// Now, we have a converter...
// We determine the type of the component array after converting one of
it's elements
if (vb != null)
{
valueType = vb.getType(facesContext);
if (valueType != null && valueType.isArray())
{
if (submittedValue.length > 0)
{
arrayComponentType = converter.getAsObject(facesContext,
component, submittedValue[0]).getClass();
}
}
}
I really wonder why we are doing this - we know the arrayComponentType already
by saying valueType.getComponentType(), why converting the first element and
then taking this one?
regards,
Martin
> wrong Converter on Arraytypes
> -----------------------------
>
> Key: MYFACES-1295
> URL: http://issues.apache.org/jira/browse/MYFACES-1295
> Project: MyFaces Core
> Issue Type: Bug
> Affects Versions: 1.1.3
> Reporter: Richard van Nieuwenhoven
> Priority: Minor
>
> the method getConvertedUISelectManyValue overwrites the arrayComponentType of
> the ValueBinding with the type of the first converted value.
> This is not correct when i have an array of subclasses, the
> arrayComponentType of the ValueBinding should have the highest priority.
> When there is a arrayComponentType of the ValueBinding whitch is not String
> or Object it should not be overwritten by the type of the first element in
> the array.
> fix replace "if (vb != null)" with "if (vb != null && converter != null &&
> arrayComponentType == null)"
--
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