When a namespace is defined via the CuratorFrameworkFactory.Builder methods, paths for events generated by the CuratorFramework have the namespace stripped off them.
When using a NamespaceFacade, the paths for generated event paths include the namespace.
This appears to be due to the implementation of the Watcher() interface in the constructor of the CuratorFrameworkImpl class. It attempts to remove the namespace from events before passing them to CuratorListener instances. In the case where the namespace is defined by the builder (and is thus part of the base CuratorFramework instance) this works fine. In the case where a NamespaceFacade is being used then the namespace of the base CuratorFramework instance is used instead of the namespace of the NamespaceFacade).
I will attach a simple test case to reproduce