[ http://issues.apache.org/jira/browse/MYFACES-587?page=comments#action_12367949 ]
Manuel Ohlendorf commented on MYFACES-587: ------------------------------------------ It is still not possible to use a java.util.TreeMap as a managed property! > Behandlung von <map-entries>- und <list-entries>-Elementen entspricht nicht > den Vorgaben von JSR-127 > ---------------------------------------------------------------------------------------------------- > > Key: MYFACES-587 > URL: http://issues.apache.org/jira/browse/MYFACES-587 > Project: MyFaces Core > Type: Bug > Components: JSR-127 > Versions: 1.0.9m9 > Environment: Windows XP, WSAD 5.1.2 > Reporter: Martin Winkelmann > Assignee: Martin Marinschek > > Zur Initialisierung einer Map- bzw. List-Property wird scheinbar immer eine > HashMap bzw. ArrayList verwendet. > Die in JSR-127 gemachten Vorgaben werden nicht umgesetzt. > Kopiert aus JSR-127 Version 1.1: > "The initialization bean properties from <map-entries> and <list-entries> > elements must adhere to the following algorithm, though any confirming > implementation may be used. > For <map-entries>: > 1. Call the property getter, if it exists. > 2. If the getter returns null or doesn't exist, create a java.util.HashMap, > otherwise use the returned java.util.Map. > 3. Add all entries defined by nested <map-entry> elements in the order they > are > listed, converting key values defined by nested <key> elements to the type > defined by <key-class> and entry values defined by nested <value> elements > to the type defined by <value-class>. If a value is given as a value binding > expression, evaluate the reference and store the result, converting to > <valueclass> > if necessary. If <key-class> and/or <value-class> are not defined, > use java.lang.String. Add null for each <null-value> element. > Chapter 5 Value Binding and Method Binding Expression Evaluation 5-13 > 4. If a new java.util.Map was created in step 2), set the property by calling > the > setter method, or log an error if there is no setter method. > For <list-entries>: > 1. Call the property getter, if it exists. > 2. If the getter returns null or doesn't exist, create a java.util.ArrayList, > otherwise use the returned Object (an array or a java.util.List). > 3. If a List was returned or created in step 2), add all elements defined by > nested > <value> elements in the order they are listed, converting values defined by > nested <value> elements to the type defined by <value-class>. If a value is > given as a value binding expression, evaluate the reference and store the > result, > converting to <value-class> if necessary. If a <value-class> is not defined, > use the value as-is (i.e., as a java.lang.String). Add null for each > <nullvalue> > element. > 4. If an array was returned in step 2), create a java.util.ArrayList and copy > all > elements from the returned array to the new List, wrapping elements of a > primitive type. Add all elements defined by nested <value> elements as > described in step 3). > 5. If a new java.util.List was created in step 2) and the property is of type > List, set the property by calling the setter method, or log an error if there > is no > setter method. > 6. If a new java.util.List was created in step 2) and the property is a java > array, > convert the List into an array of the property type, and set it by calling > the setter > method, or log an error if there is no setter method. > 7. If a new java.util.List was created in step 4), convert the List to an > array > of the proper type for the property and set the property by calling the setter > method, or log an error if there is no setter method." -- 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
