[ https://issues.apache.org/jira/browse/XMLBEANS-252?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Radu Preotiuc-Pietro resolved XMLBEANS-252. ------------------------------------------- Resolution: Won't Fix I am afraid we can't fix this one. In XMLBeans, an XmlObject can be seen as a pointer to a place in the document. When one does List l = parent.getFooList(); XmlObject o = l.get(1), the elements in the list are pointers to the XML elements in the document. When one sets the content of the first element to some value, say parent.setFooArray(1, o2) then o will point to an element whose content has now changed (you don't even need an array to observe this). In particular, in the sort case if you have XmlObject o1 = l.get(1); XmlObject o2 = l.get(2); l.set(1, o2); after these operations, o1 has the same contents as o2 and if one wants a swap, then one needs to do: XmlObject o1 = l.get(1).copy(); XmlObject o2 = l.get(2); l.set(1, o2); l.set(2, o1); I know that it is kind of unintuitive, but this is how it always worked. I think between a change in behavior that will potentially cause pain to people who want to upgrade and depend (perhaps unknowkingly) on the existing behavior and a simple workaround for people who need this functionality, I would choose the latter. So if one needs to sort the array "for read", one can do List l2 = new ArrayList(l); If one wants to sort the elements in the document, then one would do List l2 = new ArrayList(l.size()); for (int i=0; i<l.size(); i++) l2.add(l.get(i).copy()); Collections.sort(l2); parent.setFooArray(l2.toArray()); > List<Type> returned by generated getFooList() is not sortable > ------------------------------------------------------------- > > Key: XMLBEANS-252 > URL: https://issues.apache.org/jira/browse/XMLBEANS-252 > Project: XMLBeans > Issue Type: Bug > Affects Versions: Version 2.1 > Environment: Win XP SP2, JRE 1.5.0_06-b05, XMLBeans 2.1.0 > Reporter: Erik Godding Boye > Priority: Critical > > I am trying to sort the list returned by the generated getFooList() [multiple > occurrence method] using java.util.Collections#sort(java.util.List<Type>, > java.util.Comparator<Type>). The elements are not sorted, and no exception is > thrown. I would expect either, but I do not see any reason for the list to be > unmodifiable (and thus throwing exception when trying to sort it). A simple > workaround is to create a new list supplying the original list (from the > generated method) in the constructor. The new list is sortable without any > problems. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]