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/06/20 15:24:20 UTC

[jira] [Updated] (FLEX-24088) SystemManager RangeError via SystemChildrenList

     [ 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