You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by "Justin Mclean (JIRA)" <ji...@apache.org> on 2013/05/01 04:13:13 UTC

[jira] [Resolved] (FLEX-14394) Error: Error #1023: Stack overflow occurs on dispatchEvent

     [ https://issues.apache.org/jira/browse/FLEX-14394?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Justin Mclean resolved FLEX-14394.
----------------------------------

    Resolution: Not A Problem

sample code contained infinite loop
                
> Error: Error #1023: Stack overflow occurs on dispatchEvent
> ----------------------------------------------------------
>
>                 Key: FLEX-14394
>                 URL: https://issues.apache.org/jira/browse/FLEX-14394
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Events
>    Affects Versions: Adobe Flex SDK 3.0 (Release)
>         Environment: Affected OS(s): Windows
> Affected OS(s): Windows XP
> Browser: Firefox 2.x
> Language Found: English
>            Reporter: Adobe JIRA
>
>       My real problem application uses 7 components in the view stack and if you need it, I can make it downloadable from my server.  It is about 50 meg, but some of that is video.  I am attempting to design an OO style approach to shutting off a video player when the View Stack is switched away from the View that has the player component.  I can do this in another design pattern that is tightly coupled, but I want the behavior to be transfered via event bubbling.   My component will listen for the IndexChangedEvent.CHANGE, test it and start or stop the video.
> The issue is that when I select to change the View Stack, it goes into an endless loop from the handler method until it blows with a stack trace.
> Compile and run the example code below...
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  initialize="regEvents(event);">
> 		<mx:Script>
> 		<![CDATA[
> 			import mx.events.IndexChangedEvent; 
> 			private function regEvents(event:Event):void {
> 				appViews.addEventListener(IndexChangedEvent.CHANGE, viewChanged);
> 			}
> 			
>  			private function viewChanged(e:IndexChangedEvent):void {
> 				var result:Boolean = appViews.dispatchEvent(new IndexChangedEvent(IndexChangedEvent.CHANGE,true,false,appViews,e.oldIndex,e.newIndex,e));    
> 			} 
> 		]]
>       >
> 	</mx:Script>
> 	<!-- Objects for Control Bar -->  
> 	    <mx:ViewStack id="appViews" creationPolicy="all" x="10" y="119" width="99%" height="98%"  childIndexChange="this.dispatchEvent(event); "     >
>             <mx:Panel id="homeView" label="Home" showEffect="WipeDown" hideEffect="WipeUp"  width="100%" height="100%"/>
>             <mx:Panel id="webView" label="Got Web 2.0?" showEffect="WipeDown" hideEffect="WipeUp"  width="100%" height="100%"/>
>             <mx:Panel id="processView" label="Communicaton &amp; the Web" showEffect="WipeDown" hideEffect="WipeUp"  width="100%" height="100%"/>
>         </mx:ViewStack>
> 	
> 	<mx:ApplicationControlBar  x="3" y="62"   width="100%" >
> 	<mx:ToggleButtonBar 
>                 dataProvider="{appViews}"/>
> 	</mx:ApplicationControlBar>
> </mx:Application>
>  Actual Results:
>  It seems to blow acording to the number of buttons on the Control Bar (or objects in the viewStack)
> 1st Stack Trace after selecting 2nd button
> Error: Error #1023: Stack overflow occurred.
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> Close the stack window...  New window opens immediately
> 2nd Stack Trace after selecting 2nd button
> Error: Error #1023: Stack overflow occurred.
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
>  
> Close the stack window...  New window opens immediately
> 3rd Stack Trace after selecting 2nd button
> Error: Error #1023: Stack overflow occurred.
> 	at mx.controls::Button/http://www.adobe.com/2006/flex/mx/internal::setSelected()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\Button.as:1202]
> 	at mx.controls::Button/set selected()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\Button.as:1180]
> 	at mx.controls::ToggleButtonBar/hiliteSelectedNavItem()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\ToggleButtonBar.as:426]
> 	at mx.controls::NavBar/changeHandler()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\NavBar.as:1128]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
> 	at TestApp/viewChanged()[C:\EclipseProjects\Procontent\test\TestApp.mxml:12]
>  Expected Results: Nothing should occur at this point.  If I were listening for the event I should be able to catch it and act appropriately.
>  
>  
>  Workaround (if any):  Another style of design, but this should work!
>     

--
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