public void process(WatchedEvent e) { log.info(e.getPath()); // System.out.println(e.getPath() + " " + e.toString()); if (e.getState() == Watcher.Event.KeeperState.Expired) { handleExpired(); } else if (e.getState() == Watcher.Event.KeeperState.Disconnected) { log.warn("ZKDisconnected! {}", e.toString()); } else if (e.getState() == Watcher.Event.KeeperState.SyncConnected) { log.warn("ZKSyncConnected! {}", e.toString()); ZKClient.this.handleSynConnected(); } }
public synchronized void process(WatchedEvent event) { try { System.out.println("Got an event " + event.toString()); events.put(event); } catch (InterruptedException e) { e.printStackTrace(); } }
private void enode_test_2() throws IOException, InterruptedException, KeeperException { checkRoot(); String parentName = testDirOnZK; String nodeName = parentName + "/enode_abc"; ZooKeeper zk = new ZooKeeper(hostPort, 10000, this); ZooKeeper zk_1 = new ZooKeeper(hostPort, 10000, this); Stat stat = zk_1.exists(parentName, false); if (stat == null) { try { zk.create(parentName, null, Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); } catch (KeeperException ke) { fail("Creating node " + parentName + ke.getMessage()); } } stat = zk_1.exists(nodeName, false); if (stat != null) { try { zk.delete(nodeName, -1); } catch (KeeperException ke) { int code = ke.getCode(); boolean valid = code == KeeperException.Code.NoNode || code == KeeperException.Code.NotEmpty; if (!valid) { fail("Unexpected exception code for delete: " + ke.getMessage()); } } } List<String> firstGen = zk_1.getChildren(parentName, true); try { zk.create(nodeName, null, Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL); } catch (KeeperException ke) { int code = ke.getCode(); boolean valid = code == KeeperException.Code.NodeExists; if (!valid) { fail("Unexpected exception code for createin: " + ke.getMessage()); } } Thread.sleep(5000); WatchedEvent event = events.poll(10, TimeUnit.SECONDS); if (event == null) { throw new IOException("No event was delivered promptly"); } if (event.getType() != EventType.NodeChildrenChanged || !event.getPath().equalsIgnoreCase(parentName)) { fail("Unexpected event was delivered: " + event.toString()); } stat = zk_1.exists(nodeName, false); if (stat == null) { fail("node " + nodeName + " should exist"); } try { zk.delete(parentName, -1); fail("Should be impossible to delete a non-empty node " + parentName); } catch (KeeperException ke) { int code = ke.getCode(); boolean valid = code == KeeperException.Code.NotEmpty; if (!valid) { fail("Unexpected exception code for delete: " + code); } } try { zk.create(nodeName + "/def", null, Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL); fail("Should be impossible to create child off Ephemeral node " + nodeName); } catch (KeeperException ke) { int code = ke.getCode(); boolean valid = code == KeeperException.Code.NoChildrenForEphemerals; if (!valid) { fail("Unexpected exception code for createin: " + code); } } try { List<String> children = zk.getChildren(nodeName, false); if (children.size() > 0) { fail("ephemeral node " + nodeName + " should not have children"); } } catch (KeeperException ke) { int code = ke.getCode(); boolean valid = code == KeeperException.Code.NoNode; if (!valid) { fail("Unexpected exception code for createin: " + code); } } firstGen = zk_1.getChildren(parentName, true); stat = zk_1.exists(nodeName, true); if (stat == null) { fail("node " + nodeName + " should exist"); } System.out.println("session id of zk: " + zk.getSessionId()); System.out.println("session id of zk_1: " + zk_1.getSessionId()); zk.close(); stat = zk_1.exists("nosuchnode", false); event = this.getEvent(10); if (event == null) { throw new AssertionFailedError("First event was not delivered promptly"); } if (!((event.getType() == EventType.NodeChildrenChanged && event.getPath().equalsIgnoreCase(parentName)) || (event.getType() == EventType.NodeDeleted && event.getPath().equalsIgnoreCase(nodeName)))) { System.out.print( parentName + " " + EventType.NodeChildrenChanged + " " + nodeName + " " + EventType.NodeDeleted); fail("Unexpected first event was delivered: " + event.toString()); } event = this.getEvent(10); if (event == null) { throw new AssertionFailedError("Second event was not delivered promptly"); } if (!((event.getType() == EventType.NodeChildrenChanged && event.getPath().equalsIgnoreCase(parentName)) || (event.getType() == EventType.NodeDeleted && event.getPath().equalsIgnoreCase(nodeName)))) { System.out.print( parentName + " " + EventType.NodeChildrenChanged + " " + nodeName + " " + EventType.NodeDeleted); fail("Unexpected second event was delivered: " + event.toString()); } firstGen = zk_1.getChildren(parentName, false); stat = zk_1.exists(nodeName, false); if (stat != null) { fail("node " + nodeName + " should have been deleted"); } if (firstGen.contains(nodeName)) { fail("node " + nodeName + " should not be a children"); } deleteZKDir(zk_1, nodeName); zk_1.close(); }
public void process(WatchedEvent event) { if (getPrintWatches()) { printMessage("WATCHER::"); printMessage(event.toString()); } }
@Override public void process(WatchedEvent event) { // nothing to do... LOG.info(event.toString()); }
/** * Handles event from ZooKeeper for this coordinate. * * @param event */ @Override public void process(WatchedEvent event) { LOG.info("Got an event from ZooKeeper " + event.toString()); synchronized (lastStatusVersionMonitor) { switch (event.getType()) { case None: switch (event.getState()) { case SyncConnected: break; case Disconnected: case AuthFailed: case Expired: default: // If we lost connection, we don't attempt to register another watcher as // this might be blocking forever. Parent will try to reconnect (reclaim) // later. isSynchronizedWithZooKeeper.set(false); sendEventToCoordinateListener( CoordinateListener.Event.NO_CONNECTION_TO_STORAGE, event.toString()); return; } return; case NodeDeleted: // If node is deleted, we have no node to place a new watcher so we stop watching. isSynchronizedWithZooKeeper.set(false); sendEventToCoordinateListener(CoordinateListener.Event.NOT_OWNER, event.toString()); return; case NodeDataChanged: LOG.fine("Node data changed, check versions."); boolean verifiedSynchronized = false; try { final Stat stat = zkClient.getZookeeper().exists(path, this); if (stat == null) { LOG.info("Could not stat path, setting out of synch, will retry claim"); } else { LOG.fine("Previous version is " + lastStatusVersion + " now is " + stat.getVersion()); if (stat.getVersion() != lastStatusVersion) { LOG.fine("Version mismatch, sending out of sync."); } else { verifiedSynchronized = true; } } } catch (KeeperException e) { LOG.fine( "Problems with zookeeper, sending consistencyState out of sync: " + e.getMessage()); } catch (InterruptedException e) { LOG.fine("Got interrupted: " + e.getMessage()); return; } finally { isSynchronizedWithZooKeeper.set(verifiedSynchronized); } if (verifiedSynchronized) { sendEventToCoordinateListener( CoordinateListener.Event.COORDINATE_OUT_OF_SYNC, event.toString()); } return; case NodeChildrenChanged: case NodeCreated: // This should not happen.. isSynchronizedWithZooKeeper.set(false); sendEventToCoordinateListener( CoordinateListener.Event.COORDINATE_OUT_OF_SYNC, event.toString()); return; } } }
@Override public void process(WatchedEvent event) { System.out.println(event.toString()); }