Недавно я неожиданно начал получать текущее исключение из библиотеки Flex. Файл, над которым я работал (Login.mxml), неожиданно начал вызывать это исключение при загрузке.
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at mx.binding::StaticPropertyWatcher/updateParent()[E:\dev\4.x\frameworks\projects\framework\src\mx\binding\StaticPropertyWatcher.as:150]
at _components_LoginWatcherSetupUtil/setup()
at components::Login()[C:\Users\username\Documents\MP_MAIN\src\components\Login.mxml:0]
<snip ...>
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:700]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1072]
Запуск его в отладчике не дает мне строку моего кода с ошибкой, но дает мне строку в StaticPropertyWatcher. В частности:
override public function updateParent(parent:Object):void
{
// The assumption is that parent is of type, Class, and that
// the class has a static variable or property,
// staticEventDispatcher, of type IEventDispatcher.
parentObj = Class(parent);
if (parentObj["staticEventDispatcher"] != null) /* Exception thrown from here */
{
...
Отладчик показывает, что parentObj
действительно нулевой, объясняя непосредственную причину исключения, но я не могу определить более глубокую причину (то есть, что я сделал не так). Метод updateParent вызывается из класса _components_LoginWatcherSetupUtil
, но отладчик говорит, что для этого нет кода, поэтому отсутствует критическая связь между тем, что я написал, и тем, что вызвало исключение.
Так что, по сути, я даже не могу отладить это. Есть идеи, что делать, чтобы пролить свет на то, что идет не так?