Hi I can see some people might be assigning for example anonymous class
instances as watchers/handlers, and not keeping any references to them.
To avoid breaking existing use cases, two options:
1/ Add a useWeakReferences parameter to new constructor (sets default
2/ Add alternative methods, which take useWeakWatcherRef boolean.
Internally will be trivial to have both
private final Map<String, Set<Watcher>> dataWatches =
new HashMap<String, Set<Watcher>>();
private final Map<String, WeakSet<Watcher>> dataWatchesWeak =
new HashMap<String, WeakSet<Watcher>>();
On 18 March 2010 22:47, Ted Dunning <ted.dunn...@gmail.com> wrote:
> This kind of sounds strange to me.
> My typical idiom is to create a watcher but not retain any references to it
> outside the client. It sounds to me like your change will cause my
> to be collected and deactivated when GC happens.
> On Thu, Mar 18, 2010 at 3:32 AM, Dominic Williams <
> thedwilli...@googlemail.com> wrote:
> > The current ZooKeeper client holds strong references to Watcher objects.
> > want to change the client so it only holds weak references. Feedback
> > please.