Repository: flex-sdk Updated Branches: refs/heads/develop be9633de1 -> 587354995
Fix for issue FLEX-34320 Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/798194db Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/798194db Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/798194db Branch: refs/heads/develop Commit: 798194db5eaf9aa28db4fd6027f78b40bb15800d Parents: 3036b88 Author: Michael Labriola <labri...@digitalprimates.net> Authored: Thu May 15 18:06:55 2014 -0500 Committer: Michael Labriola <labri...@digitalprimates.net> Committed: Thu May 15 18:06:55 2014 -0500 ---------------------------------------------------------------------- .../framework/src/mx/collections/Sort.as | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/798194db/frameworks/projects/framework/src/mx/collections/Sort.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/framework/src/mx/collections/Sort.as b/frameworks/projects/framework/src/mx/collections/Sort.as index a1c7333..609d1ea 100644 --- a/frameworks/projects/framework/src/mx/collections/Sort.as +++ b/frameworks/projects/framework/src/mx/collections/Sort.as @@ -392,23 +392,27 @@ public class Sort extends EventDispatcher implements ISort { compareForFind = this.compareFunction; // configure the search criteria - if (values && fieldList.length > 0) + if (values && fields.length > 0) { fieldsForCompare = []; //build up the fields we can compare, if we skip a field in the //middle throw an error. it is ok to not have all the fields //though - var fieldName:String; + var field:ISortField; var hadPreviousFieldName:Boolean = true; - for (var i:int = 0; i < fieldList.length; i++) + for (var i:int = 0; i < fields.length; i++) { - fieldName = fieldList[i]; - if (fieldName) + field = fields[i]; + if (field) { var hasFieldName:Boolean = false; try { - hasFieldName = values[fieldName] !== undefined; + hasFieldName = field.compareFunction != null; + + if ( !hasFieldName ) { + hasFieldName = values[field.name] !== undefined; + } } catch(e:Error) { @@ -418,12 +422,12 @@ public class Sort extends EventDispatcher implements ISort if (!hadPreviousFieldName) { message = resourceManager.getString( - "collections", "findCondition", [ fieldName ]); + "collections", "findCondition", [ field.name ]); throw new SortError(message); } else { - fieldsForCompare.push(fieldName); + fieldsForCompare.push(field); } } else