[
https://issues.apache.org/jira/browse/CXF-1906?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marcus Christie updated CXF-1906:
---------------------------------
Attachment: CXF-1906_patch.txt
Patch to fix Set/SortedSet bug.
> Unmarshalling Set to TreeSet instead of HashSet
> -----------------------------------------------
>
> Key: CXF-1906
> URL: https://issues.apache.org/jira/browse/CXF-1906
> Project: CXF
> Issue Type: Bug
> Components: Aegis Databinding
> Affects Versions: 2.1.3
> Reporter: Marcus Christie
> Priority: Critical
> Attachments: CXF-1906_patch.txt
>
>
> When using the Aegis databinding, if you are deserializing to a class that
> has a Set in it, Aegis is currently instantiating the set as a SortedSet.
> This fails for cases where the objects being added to the set do not
> implement Comparable, and is undesired in any case.
> The error occurs in CollectionType.java:
> {code:java}
> protected Collection<Object> createCollection() {
> Collection values = null;
> if (getTypeClass().isAssignableFrom(List.class)) {
> values = new ArrayList();
> } else if (getTypeClass().isAssignableFrom(SortedSet.class)) {
> values = new TreeSet();
> } else if (getTypeClass().isAssignableFrom(Set.class)) {
> values = new HashSet();
> } else if (getTypeClass().isAssignableFrom(Vector.class)) {
> values = new Vector();
> } else if (getTypeClass().isInterface()) {
> values = new ArrayList();
> } else {
> ....
> {code}
> If the typeClass is Set, then the second "if" clause evaluates to true since
> Set is a superclass/superinterface of SortedSet.
> I've got a patch I'll submit and I'll explain the fix.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.