Since treeData is private, why not use a WeakReference? http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ref/WeakReference.html
Cheers, Chris 2009/3/13 Greg Brown <[email protected]> > I think such a scenario may be developer error. We can't reliably detect > when a component is or is not part of the component hierarchy: a component > can tell when it has been added or removed, but not when an ancestor has > been added or removed. > > On the other hand, an application developer knows when a component is added > or removed and can decouple the component from the data. > > Swing might have the same issue - how is it handled there? > > > On Mar 13, 2009, at 5:41 PM, Todd Volkert wrote: > > Scenario: >> >> 1) 'treeView' is created with 'treeData' and added to the component >> hierarchy. >> 2) 'treeView' adds itself as a ListListener on 'treeData', causing >> 'treeData' to maintain a reference to 'treeView' >> 3) 'treeView' is removed from the component hierarchy, but the user >> still needs a reference to 'treeData'. >> >> Result: 'treeView' never falls out of scope, and the user has no way >> to release the reference to it since it used a private handler as its >> event listener. >> >> Should such components only listen for data events while they're >> attached to the component hierarchy? >> >> -T >> > >
