flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lyndon Fasanya (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (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 Mon, 31 Mar 2014 10:19:15 GMT

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

Lyndon Fasanya updated FLEX-34194:
----------------------------------

    Description: 
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.

  was:
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.


> 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
>            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