docs: private void processChildEvent(WatchedEvent event) throws Exception {
          HashMap<String, JSONObject> cacheCopy = new HashMap<String, JSONObject>(m_publicCache.get());
          ByteArrayCallback cb = new ByteArrayCallback();
          m_zk.getData(event.getPath(), m_childWatch, cb, null);
          try {
              byte payload[] = cb.get();
              JSONObject jsObj = new JSONObject(new String(payload, "UTF-8"));
              cacheCopy.put(cb.getPath(), jsObj);
          } catch (KeeperException.NoNodeException e) {
              cacheCopy.remove(event.getPath());
          }
          m_publicCache.set(ImmutableMap.copyOf(cacheCopy));
          if (m_cb != null) {
              m_cb.run(m_publicCache.get());
          }
      }