darylbrewer / android-scripting

Automatically exported from code.google.com/p/android-scripting
0 stars 0 forks source link

Leak found in FacadeManagerFactory #672

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?

AndroidProxy constructor creates a FacadeManagerFactory and an instance of 
JsonRpcServer(passing in the factory).

FacadeManagerFactory has a .create() method, which creates a new FacadeManger 
adding the newly created object to a list (see 
mFacadeManagers.add(facadeManager)), and returns the newly created FacadeManger 
object.

There is no code to remove from the list.

The JsonRpcServer makes a call to FacadeManagerFactory .create method each time 
it handles a connection.

The mFacadeManagers list grows each time an connection is handled, and the 
objects in the list cannot be collected as a references to them is kept.

To reproduce you can makes calls in a loop to a facade and check in DDMS (or 
MAT) the "Retained Heap" objects growing as FacadeManager objects number grows 
without going down (see retained heap of FacadeManager).

Original issue reported on code.google.com by anthony....@gmail.com on 4 Jan 2013 at 1:24