[
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