[ https://issues.apache.org/jira/browse/FLEX-33349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13553952#comment-13553952 ]
João Sérgio Nobre Saleiro commented on FLEX-33349: -------------------------------------------------- Hello Carol - it's been a while, since Flex Summit :) . I'm right now trying to isolate it, so I can build a simpler test case but I haven't got anywhere yet. The only thing I've discovered in the meantime is that this happens if a popup is created with PopupManager right after the itemEditor saves, and only on the second change! Ironically, this use-case is quite common in our application... The internal workflow is: a) the itemEditor has a ComboBox that the user changes b) when the user focus out the editor, endItemEditorSession is called c) the save method dispatches an Event, that bubbles up d) the view behind it catches the Event, and decides whether to show a popup or not e) the second time the user changes an itemeditor that makes the popup appear, the RTE appears. The null error is inside the SDK. I've tried to simplify the code as much as possible, but it's hard to build a simple test case. The (released) application is available here: http://www.boonzi.pt/demo . While the site is in Portuguese, after you install and run the product you can choose English. To reproduce the error is quite simple, but it takes some steps: 1- Run the product, and choose to start the demo version (link on left-bottom) 2- Go to Transactions. 3- On the top-right, click the big icon with the arrow (import) 4- Click Next 5- Open the attached TXT file in a good text-editor and copy it to the clipboard (Ctrl+C) (this is used to populate the datagrid) 7- Back to the product, press "import" 8- Press "Validate" 9- And this is where the magic happens. On the first row, write any text you wish on the item editor of the column "category", and press Tab 10- A popup will appear. Press No 11- Click on the same cell you just changed, and change it's value. Press Tab again This is where the RTE happens. After posting this bug, I've discovered that I can reproduce it quite consistently (99%!) using the above steps exactly as described. More info: the application is now in Apache Flex 4.9 with Air 3.5 overlayed. Before, we were using Flex 4.6 (with the default AIR), and the problem was already there. Since we didn't know the steps to reproduce it (we were receiving two or three daily reports from clients/testers without stack info), we weren't sure where to start looking for. After yesterday, we changed to Flex 4.9 with Air 3.5 and since 3.5 now shows stack traces in release version, today we were able to track the error, but not yet the solution. I'm also working on this one, trying to isolate it so I can provide more accurate info. If you have some tips/suggestions, I'm here to try them! > TypeError #1009 happening in dataProviderRefreshed() of List.as after a call > to endItemEditorSession() in Spark Datagrid > ------------------------------------------------------------------------------------------------------------------------- > > 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 > 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