Hi Piotr,

seems reasonable. Could you let me know your proposed change so I can test
it too? I can copy the lines in my end and try it in our app to see if
there's some colateral damage

thanks



El jue., 22 ago. 2019 a las 17:38, Piotr Zarzycki (<
[email protected]>) escribió:

> Hi Guys,
>
> I run today in weird scenario where I'm getting "maximum call stack size
> exceeded" error. Following code makes freeze browser [1].
>
> When my dataProvider is an empty ArrayList, DropDownListTextPrompt sets in
> method forceSelection() selectedIndex to 0.[2]
> ArrayListSelectionModel make selectedIndex = -1, cause dataProvider is
> empty, but it also dispatch event "selectionChanged" [3].
> Once that event is dispatched DropDownListTextPrompt receives it and call
> again forceSelection method - It end up in a dead end.
>
> In my opinion ArrayListSelectionModel shouldn't dispatch selectionChanged
> if selectedIndex didn't change and this is the case.
>
> Summarize everything.
> dataProvider = new ArrayList(); -> empty.
> 1. selectedIndex is equal -1
> 2. selectedIndex is being set to 0
>
> Due to empty dataProvider nothing has actually change, but even is being
> dispatch.
>
> Do you agree that it should be changed so ArrayListSelectionModel should
> dispatch selectionChanged event when really something has changed ?
>
> [1]  https://paste.apache.org/hil50
> [2]
>
> https://github.com/apache/royale-asjs/blob/50592b55565b4ad8aa776a7ded403da2d70d54a4/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/dropdownlist/RequireSelection.as#L124
> [3]
>
> https://github.com/apache/royale-asjs/blob/50592b55565b4ad8aa776a7ded403da2d70d54a4/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ArrayListSelectionModel.as#L253
>
> Thanks,
> --
>
> Piotr Zarzycki
>
> Patreon: *https://www.patreon.com/piotrzarzycki
> <https://www.patreon.com/piotrzarzycki>*
>


-- 
Carlos Rovira
http://about.me/carlosrovira

Reply via email to