And I guess let me add a few other things.
1) With regard to the bug itself, I'm guessing that the issue is that first item in the collection to be sorted has the null value. This is causing an error because we can't determine what kind of comparator to use by default. If your first item hadn't been null you wouldn't see the issue. This means that you should specify the comparator you want to use, but one could argue that perhaps more information could be added to the DataGridColumn to provide an option for some of the provided comparators. 2) I can't remember in our code which way null compares to an actual value, but they will group together. 3) There will of course be a process for code to get contributed to the SDK. We'll have more info on this as we get closer to release, but in general it will involve having a bug filed in the bugbase, votes indicating the community's interest in having it fixed along with SDK management agreeing that the contribution is useful, and then the committers (SDK engineering) approval of the fix. Matt From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Matt Chotin Sent: Sunday, December 02, 2007 3:57 PM To: flexcoders@yahoogroups.com Subject: RE: [flexcoders] Re: If Flex is open source, how do we go about changing the language? I've moved this bug to https://bugs.adobe.com/jira/browse/SDK-13808 since it is not related to the ActionScript compiler, it's only in the Flex classes. Matt From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of aceoohay Sent: Saturday, December 01, 2007 9:14 PM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: If Flex is open source, how do we go about changing the language? Gordon: Per your request I have filed a bug report. It can be found here; https://bugs.adobe.com/jira/browse/ASC-3042 Paul --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> , "aceoohay" <[EMAIL PROTECTED]> wrote: > > Gordon, et al: > > Here is a simple test that will show the problem; > > <?xml version="1.0" encoding="utf-8"?> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > layout="absolute" > creationComplete="initApp()"> > <mx:Script> > <![CDATA[ > import mx.collections.ArrayCollection; > import mx.controls.Alert; > [Bindable] public var acData:ArrayCollection = new > ArrayCollection; > private function initApp():void > { > acData.addItem > ({col1:null,col2:null,col3:null,col4:null}); > acData.addItem({col1:1,col2:new Date > (),col3:true,col4:"A"}); > acData.addItem > ({col1:null,col2:null,col3:null,col4:null}); > acData.addItem({col1:2,col2:new Date > (),col3:null,col4:"B"}); > acData.addItem > ({col1:null,col2:null,col3:null,col4:null}); > acData.addItem({col1:3,col2:new Date > (),col3:true,col4:"C"}); > acData.addItem > ({col1:null,col2:null,col3:null,col4:null}); > acData.addItem({col1:4,col2:new Date > (),col3:null,col4:"D"}); > acData.addItem > ({col1:null,col2:null,col3:null,col4:null}); > acData.addItem({col1:5,col2:new Date > (),col3:true,col4:"E"}); > acData.addItem > ({col1:null,col2:null,col3:null,col4:null}); > acData.addItem({col1:6,col2:new Date > (),col3:false,col4:"F"}); > acData.addItem > ({col1:null,col2:null,col3:null,col4:null}); > dgSortTest.dataProvider = acData; > } > ]]> > </mx:Script> > > <mx:DataGrid id="dgSortTest" x="26" y="10"> > <mx:columns> > <mx:DataGridColumn headerText="Column 1" > dataField="col1"/> > <mx:DataGridColumn headerText="Column 2" > dataField="col2"/> > <mx:DataGridColumn headerText="Column 3" > dataField="col3"/> > <mx:DataGridColumn headerText="Column 4" > dataField="col4"/> > </mx:columns> > </mx:DataGrid> > > </mx:Application> > > --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> , "Gordon Smith" <gosmith@> wrote: > > > > Your use case seem very reasonable to me. In this particular case I > > disagree with my esteemed colleague Alex (who sits across from > me)... I > > think our default sorting routines should handle null values. So > please > > file this as a bug at http://bugs.adobe.com/flex and feel free to > > mention that I consider it a bug. > > > > However, I agree with Alex that it probably will not get fixed in > time > > for the Flex 3 release, as the bar is currently extremely high for > > making changes at this point. We've got to stabilize the release > and get > > it out! So you'll need to use a workaround for now. > > > > Gordon Smith > > Adobe Flex SDK Team > > > > ________________________________ > > > > From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > [mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> ] On > > Behalf Of aceoohay > > Sent: Saturday, December 01, 2007 2:38 PM > > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > > Subject: [flexcoders] Re: If Flex is open source, how do we go about > > changing the language? > > > > > > > > Gordon: > > > > This thread was not intended as a technical thread, which is why I > > didn't include the details about the problem. I documented the > > problem in the following post; > > > > http://tech.groups.yahoo.com/group/flexcoders/message/95131 > > <http://tech.groups.yahoo.com/group/flexcoders/message/95131> > > > > The only responses I got seemed to indicate that the behavior was > by > > design, as opposed to a bug. > > > > Yes, it does throw a runtime error. > > > > I just signed up over at the Adobe bugs site. > > > > Paul > > > > --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% > 40yahoogroups.com> > > , "Gordon Smith" <gosmith@> wrote: > > > > > > > it gets confused when there are nulls in date, numeric, or > boolean > > > fields > > > > > > > this is by design > > > > > > I doubt that we designed this code to intentionally get > > confused. : ) It > > > sounds like we're simply not properly handling null field values > > when > > > sorting. > > > > > > What do you mean by "get confused"? Does it throw an RTE? Do the > > nulls > > > cause incorrect sorting of the non-null values? Do the nulls not > > sort > > > together? How kind of sorting behavior do you think should occur > > when > > > there are null values? Should they sort before or after other > > values? > > > Please file the bug at htp://bugs.adobe.com/flex. > > <htp://bugs.adobe.com/flex.> > > > > > > BTW, the Flex SDK is not yet open-source, but it will be soon. > > > > > > Gordon Smith > > > Adobe Flex SDK Team > > > > > > ________________________________ > > > > > > From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% > 40yahoogroups.com> > > > > [mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% > 40yahoogroups.com> > > ] On > > > Behalf Of aceoohay > > > Sent: Friday, November 30, 2007 9:33 PM > > > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% > 40yahoogroups.com> > > > Subject: [flexcoders] If Flex is open source, how do we go about > > > changing the language? > > > > > > > > > > > > I just ran across what I consider a significant deficiency in > Flex. > > > To correct this problem would require an addition of two > attributes > > > to the mx:DataGridColumn class. > > > > > > I could make a change to my version of the language, or perhaps I > > > could create an inherited class. However, I feel strongly that > the > > > problem is so fundamental that it should be changed in the > > language. > > > How do I go about making this happen? > > > > > > The problem is this; > > > > > > It appears that when sorting a DataGrid by clicking a column that > > > Flex currently does its best to determine the data type and sorts > > > based on that data type. The problem is that it gets confused > when > > > there are nulls in date, numeric, or boolean fields. When it gets > > > confused it ralph's on its shoes (blows up). Based on my > research, > > > including reading a bit of the file sortField.as, this is by > design. > > > > > > There is a way around it but it requires instantiating a compare > > > function for each column that might get a null, and might be one > of > > > non string data types. The workaround is to create a function, > and > > > use the "sortCompareFunction" attribute to call a that function. > > > There is even a kludgier workaround to make the function generic > by > > > using the "headerRelease" attribute of the DataGrid to update a > > > public variable with the column number. > > > > > > Since it seems as though this is an ubiquitous problem, it should > > be > > > solved in the language itself. The best approach that I came up > > with > > > is to have two new attributes for the mx:DataGridColumn; > > > > > > sortDataType - Basically specify the type of data contained in > the > > > column that would be honored by the sort routine irrespective of > > the > > > values contained in the column. Values would be any valid data > type. > > > > > > sortNullCollatingSequence - This would define whether nulls get > > > sorted to the top or bottom of the list. Values would be low - > > which > > > would indicate that nulls would sort lower than the lowest normal > > > value, and high - which would indicate that nulls would sort > higher > > > than the highest normal value. > > > > > > This is one possible solution, there may be better ones but in my > > > opinion the current method should be improved. I would like to > see > > it > > > implemented quickly as I believe it is a serious problem. > > > > > > How do I go about getting this taken seriously, and not assigned > > > an "enhancement request number" and never looked at again? > > > > > > Paul > > > > > >