I've had a bit more of a look into this and I think that the problem is in the Watcher() implementation in the CuratorFrameworkImpl() constructor that takes a Builder as an argument. When it processes a WatchedEvent it removes the namespace from the event path
unfixForNamespace(watchedEvent.getPath(); In the case where you've defined the namespace in the builder, this removes the namespace prefix. In the case where you're using the NamespaceFacade, the namespace of the CuratorFramework instance is null (because it wasn't defined in the builder), so the namespace is not stripped off the event. I guess this is a bug, but I'm not sure what the correct fix is? The easiest fix is to just not strip the namespace in both cases. To strip the namespace in the NamespaceFacade case will be quite tricky I presume because you've got a single Watcher interface handling potentially acting as the backend for multiple NamespaceFacade instances. I'll add a ticket to Jira. cheers Cam On Mon, Oct 21, 2013 at 11:01 AM, Cameron McKenzie <[email protected]>wrote: > Will do, I'll double check I'm not doing something stupid first though. > cheers > > > On Mon, Oct 21, 2013 at 11:00 AM, Jordan Zimmerman < > [email protected]> wrote: > >> If I understand what you're saying that would be a bug. If you can, >> please provide a test case and open an issue in Jira. >> >> -Jordan >> >> On Oct 20, 2013, at 4:52 PM, Cameron McKenzie <[email protected]> >> wrote: >> >> > Not sure if I'm missing something, but it appears that there is a >> difference in functionality between defining a namespace during using the >> CuratorFrameworkFactory.builder().namespace("bla") method, and calling >> usingNamespace("bla") on an instance of the CuratorFramework itself. >> > >> > Both seem to create nodes correctly in ZooKeeper, but the paths for the >> events are inconsistent. If you using the Builder approach, the paths in >> the events do not include the namespace. If you use the CuratorFramework >> usingNamespace() approach, then the namespaces do appear in the event path. >> > >> > Is this by design? Or just a side effect? >> > cheers >> > Cam >> > >> > >> >> >
