flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Harui (JIRA)" <j...@apache.org>
Subject [jira] [Assigned] (FLEX-34194) In Apache Flex 4.10 and 4.12 why does setting a dataProvider on a spark datagrid prevent the module it resides in from unloading from it's AIR application shell.
Date Wed, 09 Apr 2014 20:14:16 GMT

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

Alex Harui reassigned FLEX-34194:
---------------------------------

    Assignee: Alex Harui

Sorry for the delay.  Taking a look now.

> In Apache Flex 4.10 and 4.12 why does setting a dataProvider on a spark datagrid prevent
the module it resides in from unloading from it's AIR application shell.
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FLEX-34194
>                 URL: https://issues.apache.org/jira/browse/FLEX-34194
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Spark: DataGrid
>    Affects Versions: Apache Flex 4.10.0, Apache Flex 4.12.0
>         Environment: Windows 7, IntelliJ12, Flex 4.12 SDK, Adobe AIR 3.8
>            Reporter: Lyndon Fasanya
>            Assignee: Alex Harui
>            Priority: Blocker
>         Attachments: ModuleUnloading.zip, experimental.zip
>
>
> I have patched a module unloading shell app from the internet converting it to an AIR
(3.8) application shell, to replicate the issue that I'm finding in our Enterprise Asset Management
appplication, which needs this fix!
> I am using Adobe Scout to profile the application.
> In my shell application I load a module using module loader into a child Application
Domain.
> The shell derived from Tom Sugden's module unloading application loads the module and
like I have found online the first instance is pinned in memory. I thought possibly adding
ArrayCollection and ArrayList in the shell app. would allow it to be removed but it doesn't
I understand that this could be due to somehow this 'setting of the dataProvider' causing
the module to be registered with the main app. I have looked in Scout and found the frame
where the dataProvider is set and still I cannot identify from the AS objects or the function
calls what could be doing it. Possibly it's a case of not knowing what to look for.
> Some other things of note:
> If I use an mx:DataGrid with same dataProvider the module unloads first time.
> If I use a s:DataGrid with no dataProvider set the module unloads first time.
> Even if I set a dataProvider on an s:DataGrid by pressing a button on the UI which caused
the dataGrid to appear and then unset the dataprovider by setting the grids dataprovider to
null the module does not unload.
> I have a project created that one can use to debug this attached.
> I would really like a solution for this and to be able to understand why this is happening
in detail.
> I have keep-all-type-selectors set to true in the main app even if I remove all custom
styles the problem remains.
> I upgraded from 4.10 to 4.12. This did not fix the problem.
> I even generated a link-report from the main app and used load-externs in the module
to optimise any shared code defintions without success.
> I think this bug is critical and understandably I do not want to use an mx:DataGrid.
> Given : 
> I have the Adobe Scout profiler running and,
> I load a module containing a populated spark dataGrid with test objects such as 
> new ArrayList([{'a':'a1','b':'b1'},{'a':'a2','b':'b2'},{'a':'a3','b':'b3'}]);
> And then I unload the module.
> Expected:
> Clicking Garbage Collection from scout or even from within the app, will remove the module
from memory.
> Actual:
> Some garbage collection occurs as present in Scout, but the swf file representing the
module is not garbage collected and still viewable in Scout.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message