private void validateConnection(CuratorEvent curatorEvent) { if (curatorEvent.getType() == CuratorEventType.WATCHED) { if (curatorEvent.getWatchedEvent().getState() == Watcher.Event.KeeperState.Disconnected) { connectionStateManager.addStateChange(ConnectionState.SUSPENDED); internalSync( this, "/", null); // we appear to have disconnected, force a new ZK event and see if we can connect // to another server } else if (curatorEvent.getWatchedEvent().getState() == Watcher.Event.KeeperState.Expired) { connectionStateManager.addStateChange(ConnectionState.LOST); } else if (curatorEvent.getWatchedEvent().getState() == Watcher.Event.KeeperState.SyncConnected) { connectionStateManager.addStateChange(ConnectionState.RECONNECTED); } else if (curatorEvent.getWatchedEvent().getState() == Watcher.Event.KeeperState.ConnectedReadOnly) { connectionStateManager.addStateChange(ConnectionState.READ_ONLY); } } }
void logError(String reason, final Throwable e) { if ((reason == null) || (reason.length() == 0)) { reason = "n/a"; } if (!Boolean.getBoolean(DebugUtils.PROPERTY_DONT_LOG_CONNECTION_ISSUES) || !(e instanceof KeeperException)) { log.error(reason, e); } if (e instanceof KeeperException.ConnectionLossException) { connectionStateManager.addStateChange(ConnectionState.LOST); } final String localReason = reason; unhandledErrorListeners.forEach( new Function<UnhandledErrorListener, Void>() { @Override public Void apply(UnhandledErrorListener listener) { listener.unhandledError(localReason, e); return null; } }); }