private void handleKeeperStateEvent(WatchedEvent event) { Set<Watcher> savedAllWatches = new HashSet<Watcher>(allWatchesGauge.get()); for (Set<Watcher> watcherSet : childWatches.values()) { synchronized (watcherSet) { savedAllWatches.addAll(watcherSet); } } for (Watcher watcher : savedAllWatches) { watcher.process(event); } }
@Override public void process(WatchedEvent event) { pending.get().process(event); }
private void handleChildWatchEvent(WatchedEvent event) { String path = event.getPath(); if (null == path) { logger.warn("Received zookeeper watch event with null path : {}", event); return; } Set<Watcher> watchers = childWatches.get(path); if (null == watchers) { return; } Set<Watcher> watchersToFire; synchronized (watchers) { watchersToFire = new HashSet<Watcher>(watchers.size()); watchersToFire.addAll(watchers); } for (Watcher watcher : watchersToFire) { watcher.process(event); } } }
@Override public void eventReceived(CuratorFramework client, CuratorEvent event) throws Exception { if ( event.getWatchedEvent() != null ) { watcher.process(event.getWatchedEvent()); } } };
for (Watcher watcher : watchers) { try { watcher.process(event); } catch (Throwable t) { LOG.warn("Encountered unexpected exception from watcher {} : ", watcher, t);
continue; w.process(e);
public Set<Watcher> triggerWatch(String path, EventType type, Set<Watcher> supress) { WatchedEvent e = new WatchedEvent(type, KeeperState.SyncConnected, path); HashSet<Watcher> watchers; synchronized (this) { watchers = watchTable.remove(path); if (watchers == null || watchers.isEmpty()) { if (LOG.isTraceEnabled()) { ZooTrace.logTraceMessage(LOG, ZooTrace.EVENT_DELIVERY_TRACE_MASK, "No watchers for " + path); } return null; } for (Watcher w : watchers) { HashSet<String> paths = watch2Paths.get(w); if (paths != null) { paths.remove(path); } } } for (Watcher w : watchers) { if (supress != null && supress.contains(w)) { continue; } w.process(e); } return watchers; }
@Override public void processResult(CuratorFramework client, CuratorEvent event) throws Exception { WatchedEvent fakeEvent = new WatchedEvent(Watcher.Event.EventType.None, curator.getZookeeperClient().isConnected() ? Watcher.Event.KeeperState.SyncConnected : Watcher.Event.KeeperState.Disconnected, null); watcher.process(fakeEvent); } };
WatchedEvent e = null; if (node == null) { watcher.process(new WatchedEvent(EventType.NodeDeleted, KeeperState.SyncConnected, path)); } else if (node.stat.getMzxid() > relativeZxid) { watcher.process(new WatchedEvent(EventType.NodeDataChanged, KeeperState.SyncConnected, path)); } else { DataNode node = getNode(path); if (node != null) { watcher.process(new WatchedEvent(EventType.NodeCreated, KeeperState.SyncConnected, path)); } else { DataNode node = getNode(path); if (node == null) { watcher.process(new WatchedEvent(EventType.NodeDeleted, KeeperState.SyncConnected, path)); } else if (node.stat.getPzxid() > relativeZxid) { watcher.process(new WatchedEvent(EventType.NodeChildrenChanged, KeeperState.SyncConnected, path)); } else {
DataNode node = getNode(path); if (node == null) { watcher.process(new WatchedEvent(EventType.NodeDeleted, KeeperState.SyncConnected, path)); } else if (node.stat.getMzxid() > relativeZxid) { watcher.process(new WatchedEvent(EventType.NodeDataChanged, KeeperState.SyncConnected, path)); } else { DataNode node = getNode(path); if (node != null) { watcher.process(new WatchedEvent(EventType.NodeCreated, KeeperState.SyncConnected, path)); } else { DataNode node = getNode(path); if (node == null) { watcher.process(new WatchedEvent(EventType.NodeDeleted, KeeperState.SyncConnected, path)); } else if (node.stat.getPzxid() > relativeZxid) { watcher.process(new WatchedEvent(EventType.NodeChildrenChanged, KeeperState.SyncConnected, path)); } else {
.process(new WatchedEvent(EventType.NodeDataChanged, KeeperState.SyncConnected, path))); });
@Override public WatcherOrBitSet triggerWatch( String path, EventType type, WatcherOrBitSet suppress) { WatchedEvent e = new WatchedEvent(type, KeeperState.SyncConnected, path); BitHashSet watchers = remove(path); if (watchers == null) { return null; } // Avoid race condition between dead watcher cleaner in // WatcherCleaner and iterating here synchronized (watchers) { for (Integer wBit : watchers) { if (suppress != null && suppress.contains(wBit)) { continue; } Watcher w = watcherBitIdMap.get(wBit); // skip dead watcher if (w == null || isDeadWatcher(w)) { continue; } w.process(e); } } return new WatcherOrBitSet(watchers); }
watcher.process(new WatchedEvent(EventType.NodeDataChanged, KeeperState.SyncConnected, path));
for (Watcher watcher : pair.watchers) { try { watcher.process(pair.event); } catch (Throwable t) { LOG.error("Error while calling watcher ", t);
for (Watcher watcher : pair.watchers) { try { watcher.process(pair.event); } catch (Throwable t) { LOG.error("Error while calling watcher ", t);