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

Justin Mclean updated FLEX-24088:
---------------------------------

    Labels: easyfix easytest  (was: )
    
> SystemManager RangeError via SystemChildrenList
> -----------------------------------------------
>
>                 Key: FLEX-24088
>                 URL: https://issues.apache.org/jira/browse/FLEX-24088
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: mx: Menu Bar
>    Affects Versions: Adobe Flex SDK 3.5 (Release)
>         Environment: Affected OS(s): All OS Platforms
> Language Found: English
>            Reporter: Adobe JIRA
>              Labels: easyfix, easytest
>
> Steps to reproduce in SDK 3.5.0.12683: 
> 1. Open a panel with a MenuBar instance in a PopUp using 
> PopUpManager.addPopUp(panel, this, false, PopUpManagerChildList.POPUP);
> 2. Actuate the menu a few times
> 3. Watch the explosion on your console.
>  
>  Actual Results:
>  RangeError: Error #2006: The supplied index is out of bounds.
>       at flash.display::DisplayObjectContainer/addChildAt()
>       at 
> mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::rawChildren_addChildAt()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2179]
>       at 
> mx.managers::SystemChildrenList/addChild()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\managers\SystemChildrenList.as:111]
>       at 
> mx.managers::PopUpManagerImpl/addPopUp()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\managers\PopUpManagerImpl.as:309]
>       at 
> mx.managers::PopUpManager$/addPopUp()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\managers\PopUpManager.as:169]
>       at 
> mx.controls::MenuBar/showMenu()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\controls\MenuBar.as:1681]
>       at 
> mx.controls::MenuBar/mouseDownHandler()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\controls\MenuBar.as:1898]
>  
>  Expected Results:
>  No RTE
>  
>  Workaround (if any):
>  There are 3 possible fixes for this bug.  
>   1. SystemManager.as - line 1811, the contains() method is excluding 
> children with an index below the current value of the "noTopMostIndex" 
> property when the popupChildren IChildList's children start at this value.  
> This prevents any interested objects from using the contains() method on the 
> SystemManager to check for popupChildren existence (@see MenuBar.as line 
> 1679).
>   2. SystemChildrenList.as - line 110 and 121, addChild() and addChildAt() 
> methods fail to check if the DisplayObject being added is already a child of 
> owner before incrementing the upperBoundReference.  This causes subsequent 
> calls to those methods throw a RangeError.
>   3. PopupManagerImpl.as - line 307 fails to check whether or not the 
> displayObject being popped up is already a child of the IChildList instance 
> before calling addChild().
> Any of the fixes mentioned above would solve this problem but for brevity, I 
> have attached a monkey patch for the SystemChildrenList.as with the repro 
> project.

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