From 248f8b47afaa375e1b1013727a128c0cc19d8e60 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Fri, 2 Sep 2011 11:45:40 +0000 Subject: [PATCH] Use a List rather than a Set for the sorting parameters, so order is preserved git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30180 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../getchildren/GetChildrenCannedQuery.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/source/java/org/alfresco/repo/node/getchildren/GetChildrenCannedQuery.java b/source/java/org/alfresco/repo/node/getchildren/GetChildrenCannedQuery.java index 07b33a46ed..5cf79c32fd 100644 --- a/source/java/org/alfresco/repo/node/getchildren/GetChildrenCannedQuery.java +++ b/source/java/org/alfresco/repo/node/getchildren/GetChildrenCannedQuery.java @@ -25,7 +25,6 @@ import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.HashMap; -import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -161,14 +160,23 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions> sortPairs = (List)sortDetails.getSortPairs(); // Set sort / filter params - Set sortFilterProps = new HashSet(filterProps.size() + sortPairs.size()); - for (FilterProp filter : filterProps) - { - sortFilterProps.add(filter.getPropName()); - } + // Note - need to keep the sort properties in their requested order + List sortFilterProps = new ArrayList(filterProps.size() + sortPairs.size()); for (Pair sort : sortPairs) { - sortFilterProps.add(sort.getFirst()); + QName sortQName = sort.getFirst(); + if(! sortFilterProps.contains(sortQName)) + { + sortFilterProps.add(sortQName); + } + } + for (FilterProp filter : filterProps) + { + QName filterQName = filter.getPropName(); + if(! sortFilterProps.contains(filterQName)) + { + sortFilterProps.add(filterQName); + } } int filterSortPropCnt = sortFilterProps.size(); @@ -279,7 +287,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions filterSortProps, FilterSortNodeEntity params) + private int setFilterSortParams(List filterSortProps, FilterSortNodeEntity params) { int cnt = 0;