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

Alex Harui commented on FLEX-35279:
-----------------------------------

Hard to say if that will fix the issue.  Is the data structure extremely 
complex?  It might be worth getting a performance profile to see what else is 
going on.  In the posted stack trace, the Application's resizeHandler is 
running, which causes the visibility of the OrderMaintenanceWindow to change, 
which results in the dataProvider being changed in the grid and then all the 
nodes in the DataGrid get expanded.  But we don't know what else happened 
during these 60 seconds.  Maybe something else happened during the 
resizeHandler that ate up 50 of the 60 seconds.  Maybe the rest of the 
OrderMaintenanceWindow had to be initialized and that ate up 50 of the 60 
seconds.  A profiler would shed some light here.

It seems improbably that expandAll would be the first line in every stack 
trace.  I could believe it if expandAll is always in the list but the things it 
calls are frequently the first line.

When the player has 60 seconds to run all of this code, other things running on 
the system are a factor.  If you have all of your CPUs busy doing other things, 
then Flash may only run 10% of the code instructions it might run if nothing 
else was running.  So what you really want to do is make sure there are no long 
loops in your app.

In theory, it is possible to replace expandAll() with a pseudo-threaded expand 
equivalent.  It might take longer to do its thing, but if you only expand a few 
nodes in each callLater, you will be better guaranteed to avoid future 
timeouts.  Here's an old blog article about pseudo-threading.  
http://blogs.adobe.com/aharui/?s=pseudo+thread&submit=


> Apache Flex Screen freeze
> -------------------------
>
>                 Key: FLEX-35279
>                 URL: https://issues.apache.org/jira/browse/FLEX-35279
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Advanced Data Grid
>    Affects Versions: Apache Flex 4.15.0
>         Environment: IE, Firefox, and Chrome Browsers
>            Reporter: Scott Capilouto
>            Priority: Critical
>
> We have an application where we are seeing intermittently screen freezes with 
> the following error. Apache Flex appears to freeze for a minute to a minute 
> and half before resuming.
> Would you happen to know what might be causing this?
> We are able to see this error when running from Firefox in Debug mode:
> Error: Error #1502: A script has executed for longer than the default timeout 
> period of 15 seconds.
> at 
> mx.controls::AdvancedDataGrid/expandAll()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGrid.as:5780]
> at 
> mx.controls::AdvancedDataGrid/collectionChangeHandler()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGrid.as:8232]
> at flash.events::EventDispatcher/dispatchEventFunction()
> at flash.events::EventDispatcher/dispatchEvent()
> at 
> mx.collections::HierarchicalCollectionView/internalRefresh()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionView.as:1272]
> at 
> mx.collections::HierarchicalCollectionView/collectionChangeHandler()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionView.as:1459]
> at flash.events::EventDispatcher/dispatchEventFunction()
> at flash.events::EventDispatcher/dispatchEvent()
> at mx.collections::HierarchicalData/set 
> source()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalData.as:153]
> at 
> mx.binding::Binding/defaultDestFunc()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/binding/Binding.as:305]
> at Function/http://adobe.com/AS3/2006/builtin::call()
> at 
> mx.binding::Binding/innerExecute()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/binding/Binding.as:511]
> at Function/http://adobe.com/AS3/2006/builtin::apply()
> at 
> mx.binding::Binding/wrapFunctionCall()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/binding/Binding.as:418]
> at 
> mx.binding::Binding/execute()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/binding/Binding.as:356]
> at 
> mx.binding::Binding/watcherFired()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/binding/Binding.as:539]
> at 
> mx.binding::Watcher/notifyListeners()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/binding/Watcher.as:317]
> at 
> mx.binding::PropertyWatcher/eventHandler()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/binding/PropertyWatcher.as:385]
> at flash.events::EventDispatcher/dispatchEventFunction()
> at flash.events::EventDispatcher/dispatchEvent()
> at com.homedepot.mm.sv.esvs.model::SVSModelLocator/dispatchEvent()
> at com.homedepot.mm.sv.esvs.model::SVSModelLocator/set acLocalLineItemData()
> at 
> com.homedepot.mm.sv.esvs.view.order::ProductEntry/refreshLineItemDataGrid()[C:\bkpppp\esvs\MMSVESVSWeb\src\com\homedepot\mm\sv\esvs\view\order\ProductEntry.mxml:6638]
> at 
> com.homedepot.mm.sv.esvs.view.order::OrderMaintenanceWindow/measureServiceViewHideHandler()[C:\bkpppp\esvs\MMSVESVSWeb\src\com\homedepot\mm\sv\esvs\view\order\OrderMaintenanceWindow.mxml:1111]
> at flash.events::EventDispatcher/dispatchEventFunction()
> at flash.events::EventDispatcher/dispatchEvent()
> at 
> mx.core::UIComponent/dispatchEvent()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/core/UIComponent.as:13688]
> at 
> mx.core::UIComponent/setVisible()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/core/UIComponent.as:3301]
> at 
> mx.containers::ViewStack/commitSelectedIndex()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/mx/src/mx/containers/ViewStack.as:1227]
> at 
> mx.containers::ViewStack/commitProperties()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/mx/src/mx/containers/ViewStack.as:767]
> at 
> mx.core::UIComponent/validateProperties()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/core/UIComponent.as:8751]
> at 
> mx.managers::LayoutManager/validateProperties()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/managers/LayoutManager.as:605]
> at 
> mx.managers::LayoutManager/doPhasedInstantiation()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/managers/LayoutManager.as:821]
> at 
> mx.managers::LayoutManager/validateNow()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/managers/LayoutManager.as:886]
> at 
> mx.core::Application/resizeHandler()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/mx/src/mx/core/Application.as:1742]
> at 
> mx.core::Application/commitProperties()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/mx/src/mx/core/Application.as:1095]
> at 
> mx.core::UIComponent/validateProperties()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/core/UIComponent.as:8751]
> at 
> mx.managers::LayoutManager/validateProperties()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/managers/LayoutManager.as:605]
> at 
> mx.managers::LayoutManager/doPhasedInstantiation()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/managers/LayoutManager.as:821]
> at 
> mx.managers::LayoutManager/doPhasedInstantiationCallback()[/Users/justinmclean/Documents/ApacheFlex4.15/frameworks/projects/framework/src/mx/managers/LayoutManager.as:1188]



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to