Search code examples
apache-flexdebuggingflash-builder

How to get better information than "undefined" from Flash Builder (Flex 3.5)?


I've seen "undefined" all by itself in the console window before, but I could figure out what it meant. This time, I'm getting it in the opening line of the constructor for CollectionEvent (super(type, bubbles, cancelable);). I think it was triggered by a write to an XMLListCollection. There doesn't seem to be anything undefined about it--the this pointer looks good and all that parameters do, too. It has rather a large stack trace but no helpful information about what's undefined. How do I get to the next debugging step?

undefined
    at mx.events::CollectionEvent()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\events\CollectionEvent.as:116]
    at mx.collections::ListCollectionView/handlePropertyChangeEvents()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:1245]
    at mx.collections::ListCollectionView/listChangeHandler()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:1120]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.collections::XMLListAdapter/itemUpdateHandler()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\XMLListAdapter.as:523]
    at mx.collections::XMLListAdapter/itemUpdated()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\XMLListAdapter.as:321]
    at mx.collections::XMLListAdapter/xmlNotification()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\XMLListAdapter.as:620]
    at Function/()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\utils\XMLNotifier.as:81]
    at AddressNode/DisplayLinesInLabels()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\AddressNode.as:192]
    at AddressTree/DisplayLinesInLabels()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\AddressTree.as:37]
    at UMTAControl/ValidateDisplayLines_()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\UMTAControl.as:90]
    at UMTAControl/OnChangeXML()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\UMTAControl.as:82]
    at UMTAControl/OnChXML()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\UMTAControl.as:79]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.collections::ListCollectionView/dispatchEvent()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:879]
    at mx.collections::ListCollectionView/handlePropertyChangeEvents()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:1248]
    at mx.collections::ListCollectionView/listChangeHandler()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:1120]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.collections::XMLListAdapter/itemUpdateHandler()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\XMLListAdapter.as:523]
    at mx.collections::XMLListAdapter/itemUpdated()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\XMLListAdapter.as:321]
    at mx.collections::XMLListAdapter/xmlNotification()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\XMLListAdapter.as:620]
    at Function/()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\utils\XMLNotifier.as:81]
    at AddressNode/DisplayLinesInLabels()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\AddressNode.as:192]
    at AddressTree/DisplayLinesInLabels()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\AddressTree.as:37]
    at UMTAControl/ValidateDisplayLines_()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\UMTAControl.as:90]
    at UMTAControl/OnChangeXML()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\UMTAControl.as:82]
    at UMTAControl/OnChXML()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\UMTAControl.as:79]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.collections::ListCollectionView/dispatchEvent()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:879]
    at mx.collections::ListCollectionView/handlePropertyChangeEvents()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:1248]
    at mx.collections::ListCollectionView/listChangeHandler()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:1120]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.collections::XMLListAdapter/itemUpdateHandler()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\XMLListAdapter.as:523]
    at mx.collections::XMLListAdapter/itemUpdated()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\XMLListAdapter.as:321]
    at mx.collections::XMLListAdapter/xmlNotification()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\XMLListAdapter.as:620]
    at Function/()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\utils\XMLNotifier.as:81]
    at AddressNode/DisplayLinesInLabels()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\AddressNode.as:192]
    at AddressTree/DisplayLinesInLabels()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\AddressTree.as:37]
    at UMTAControl/ValidateDisplayLines_()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\UMTAControl.as:90]
    at UMTAControl/OnChangeXML()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\UMTAControl.as:82]
    at UMTAControl/OnChXML()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\UMTAControl.as:79]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.collections::ListCollectionView/dispatchEvent()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:879]
    at mx.collections::ListCollectionView/handlePropertyChangeEvents()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:1248]
    at mx.collections::ListCollectionView/listChangeHandler()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:1120]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.collections::XMLListAdapter/itemUpdateHandler()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\XMLListAdapter.as:523]
    at mx.collections::XMLListAdapter/itemUpdated()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\XMLListAdapter.as:321]
    at mx.collections::XMLListAdapter/xmlNotification()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\collections\XMLListAdapter.as:620]
    at Function/()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\utils\XMLNotifier.as:81]
    at AddressNode/DisplayLinesInLabels()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\AddressNode.as:192]
    at AddressTree/DisplayLinesInLabels()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\AddressTree.as:37]
    at UMTAControl/ValidateDisplayLines_()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\UMTAControl.as:90]
    at UMTAControl/OnChangeXML()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\UMTAControl.as:82]
    at UMTAControl/OnChXML()[C:\Users\PL\Documents\projects\AMHS-FlexProject\src\ubimex\modules\MTARoutingControl\UMTAControl.as:79]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()

Solution

  • That's right, those other instances of "undefined" were all due to infinite recursion causing stack overflow (and not the kind that gives well-thought feedback).

    I imagined these callbacks were similar to the MFC model, where messages were queued and only processed when the app developer's code was finished executing (and I think duplicate messages might have been merged sometimes). Clearly that's not what's going on here--a change is being made and the callback is executed immediately. I guess I won't be able to reliably detect changes to this XMLListCollection :(

    Thanks guys.