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;