flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mihai Chira (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLEX-35321) LayoutManager initializes components which are no longer on stage
Date Wed, 07 Jun 2017 11:25:18 GMT

    [ https://issues.apache.org/jira/browse/FLEX-35321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16040726#comment-16040726

Mihai Chira commented on FLEX-35321:

Thank you for your thoughts, Alex. Indeed, it would be quite complicated to remove component
trees from the {{updateCompleteQueue}}. But actually the bug (seems to me that it) is fixable
in a simpler way: just checking for a {{nestLevel}} different from 0 before setting the component's
{{initialized}} flag to {{true}}. The bug's unit test passes with these changes, and I've
just done a smoke test of our (large) application with these {{LayoutManager}} changes. Please
see the patch that I've attached and let me know if you anticipate any problems. In the meantime
I'll add a couple more unit test functions for some scenarios issues that I can anticipate.

> LayoutManager initializes components which are no longer on stage
> -----------------------------------------------------------------
>                 Key: FLEX-35321
>                 URL: https://issues.apache.org/jira/browse/FLEX-35321
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Layout - General
>    Affects Versions: Apache Flex 4.16.0
>            Reporter: Mihai Chira
>            Assignee: Mihai Chira
>             Fix For: Apache Flex 4.17.0
>         Attachments: FLEX-35321 potential solution.patch
> *Scenario A*: during an object's validation cycle some code resulting from {{validateSize()}},
{{validateProperties()}} or {{validateDisplayList()}} results in the object's removal from
> *Scenario B*: a user performs an action whose effect is the removal of a component, exactly
when that component is being validated in phases ({{LayoutManager.usePhasedInstantiation ==
true}}, which is to say, in the span of two-three frames.
> (For the unit test that models this scenario.)
> ----
> *Expected behaviour*: {{LayoutManager}} detects the object's removal from stage, stops
validating it, and never sets its {{initialized}} flag to {{true}}.
> *Actual behaviour*: {{LayoutManager}} does not detect the object's removal from stage,
continues validating it, and ends up setting the object's {{initialized}} flag to {{true}}.
> *Unit test*: {{LayoutManager_FLEX_35321_Tests}}.

This message was sent by Atlassian JIRA

View raw message