[ 
https://issues.apache.org/jira/browse/FLEX-33349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13614822#comment-13614822
 ] 

Carlos Rovira commented on FLEX-33349:
--------------------------------------

I found this weird bug in a combobox component extension in my company. I get a 
test project and a way to always reproduce de issue (since the involved 
extension is owned code I can't share the test project).

I just commited a fix based on null control that ensure that the NPE is not 
happening again, and make the listeners inside the const functions weak to 
ensure correct GC.

The code seems very ugly to me and this should be a temporary fix while we make 
something more maintenable and elegant. I'm asking to myself why this was not 
solved with calllater over chained flex update event listeners (I don't like 
call later, but seems better solution that the current one).


                
> TypeError #1009 happening in dataProviderRefreshed() of List.as after 
> refreshing the dataProvider of Combobox
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: FLEX-33349
>                 URL: https://issues.apache.org/jira/browse/FLEX-33349
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Spark: DataGrid
>    Affects Versions: Apache Flex 4.9.0
>         Environment: All
>            Reporter: João Sérgio Nobre Saleiro
>            Assignee: Carlos Rovira
>              Labels: Datagrid, RTE, Spark, itemEditorSession, itemeditor, null
>         Attachments: transactions.txt
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> a) This RTE is quite hard to reproduce, and I wasn't able to build a simple 
> scenario to demonstrate it
> b) It happens occasionally, in 20-30% of the tries
> c) It happens after the user ends an itemEditorSession of a Spark ItemEditor 
> used in a Spark DataGrid.
> d) It's a null error on line 1479 (dataProviderRefreshed) of List.as. 
> dataGroup is null when the function is called, causing the RTE.
> The RTE follows below:
> TypeError: Error #1009: Cannot access a property or method of a null object 
> reference.
>       at 
> Function/<anonymous>()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/spark/src/spark/components/List.as:1479]
>       at flash.events::EventDispatcher/dispatchEventFunction()
>       at flash.events::EventDispatcher/dispatchEvent()
>       at 
> mx.core::UIComponent/dispatchEvent()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/core/UIComponent.as:13160]
>       at 
> mx.managers::LayoutManager/doPhasedInstantiation()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/managers/LayoutManager.as:852]
>       at 
> mx.managers::LayoutManager/validateNow()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/managers/LayoutManager.as:886]
>       at 
> mx.core::UIComponent/commitCurrentState()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/core/UIComponent.as:10513]
>       at 
> mx.core::UIComponent/setCurrentState()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/core/UIComponent.as:10331]
>       at mx.core::UIComponent/set 
> currentState()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/core/UIComponent.as:6433]
>       at com.boonzi.desktop.core.view.components::BigTooltip/set 
> displayPopUp()[C:\webfuel\boonzi\trunk\boonzi-desktop\src\com\boonzi\desktop\core\view\components\BigTooltip.mxml:33]
>       at 
> mx.binding::Binding/defaultDestFunc()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/binding/Binding.as:290]
>       at Function/http://adobe.com/AS3/2006/builtin::call()
>       at 
> mx.binding::Binding/innerExecute()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/binding/Binding.as:493]
>       at Function/http://adobe.com/AS3/2006/builtin::apply()
>       at 
> mx.binding::Binding/wrapFunctionCall()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/binding/Binding.as:403]
>       at 
> mx.binding::Binding/execute()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/binding/Binding.as:341]
>       at 
> mx.binding::Binding/watcherFired()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/binding/Binding.as:519]
>       at 
> mx.binding::Watcher/notifyListeners()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/binding/Watcher.as:319]
>       at 
> mx.binding::PropertyWatcher/eventHandler()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/binding/PropertyWatcher.as:385]
>       at flash.events::EventDispatcher/dispatchEventFunction()
>       at flash.events::EventDispatcher/dispatchEvent()
>       at 
> com.boonzi.desktop.transactions.model::TransactionModel/dispatchEvent()
>       at com.boonzi.desktop.transactions.model::TransactionModel/set 
> numberOfCategorizedImportedTransactions()
>       at 
> com.boonzi.desktop.transactions.view::ImportStatementsView/tryToShowCategoryPopup()[C:\webfuel\boonzi\trunk\boonzi-desktop\src\com\boonzi\desktop\transactions\view\ImportStatementsView.as:1512]
>       at 
> com.boonzi.desktop.transactions.view::ImportStatementsView/setCategory()[C:\webfuel\boonzi\trunk\boonzi-desktop\src\com\boonzi\desktop\transactions\view\ImportStatementsView.as:729]
>       at Function/http://adobe.com/AS3/2006/builtin::apply()
>       at 
> org.swizframework.utils.event::EventHandler/handleEvent()[/Users/Chris/Documents/my_projects/swizframework-git/swiz-framework/src/org/swizframework/utils/event/EventHandler.as:124]
>       at flash.events::EventDispatcher/dispatchEventFunction()
>       at flash.events::EventDispatcher/dispatchEvent()
>       at 
> mx.core::UIComponent/dispatchEvent()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/core/UIComponent.as:13160]
>       at 
> com.boonzi.desktop.skins.mitra.datagrid::ImportStatementsCategoryEditor/save()[C:\webfuel\boonzi\trunk\boonzi-desktop\src\com\boonzi\desktop\skins\mitra\datagrid\ImportStatementsCategoryEditor.mxml:88]
>       at 
> com.boonzi.desktop.skins.mitra.datagrid::ImportStatementsCategoryEditor/griditemeditor1_focusOutHandler()[C:\webfuel\boonzi\trunk\boonzi-desktop\src\com\boonzi\desktop\skins\mitra\datagrid\ImportStatementsCategoryEditor.mxml:98]
>       at 
> com.boonzi.desktop.skins.mitra.datagrid::ImportStatementsCategoryEditor/___ImportStatementsCategoryEditor_GridItemEditor1_focusOut()[C:\webfuel\boonzi\trunk\boonzi-desktop\src\com\boonzi\desktop\skins\mitra\datagrid\ImportStatementsCategoryEditor.mxml:3]
>       at flash.display::Stage/set focus()
>       at 
> mx.core::UIComponent/setFocus()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/core/UIComponent.as:9913]
>       at 
> spark.components::DataGrid/setFocus()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/spark/src/spark/components/DataGrid.as:2354]
>       at 
> spark.components.gridClasses::DataGridEditor/http://www.adobe.com/2006/flex/mx/internal::destroyItemEditor()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as:521]
>       at 
> spark.components.gridClasses::DataGridEditor/saveItemEditorSession()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as:961]
>       at 
> spark.components.gridClasses::DataGridEditor/endEdit()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as:923]
>       at 
> spark.components.gridClasses::DataGridEditor/endItemEditorSession()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as:855]
>       at 
> spark.components::DataGrid/endItemEditorSession()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/spark/src/spark/components/DataGrid.as:3841]
>       at 
> spark.components.gridClasses::DataGridEditor/editor_keyFocusChangeHandler()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as:1624]

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to