curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cammckenzie <>
Subject [GitHub] curator pull request: Curator 110
Date Thu, 12 Jun 2014 22:20:33 GMT
Github user cammckenzie commented on a diff in the pull request:
    --- Diff: curator-framework/src/main/java/org/apache/curator/framework/
    @@ -210,4 +213,28 @@
          * @param watcher the watcher
         public void clearWatcherReferences(Watcher watcher);
    +    /**
    +     * Get the current connection state. The connection state will have a value of 0
    +     * the first connection related event is received.
    +     * @return The current connection state, or null if it is unknown 
    +     */
    +    public ConnectionState getCurrentConnectionState();
    +    /**
    +     * Block until a connection to ZooKeeper is available or the maxWaitTime has been
    +     * @param maxWaitTime The maximum wait time. Specify a value <= 0 to wait indefinitely
    +     * @param units The time units for the maximum wait time.
    +     * @return True if connection has been established, false otherwise.
    +     * @throws InterruptedException If interrupted while waiting
    +     */
    +    public boolean blockUntilConnected(int maxWaitTime, TimeUnit units) throws InterruptedException;
    --- End diff --
    The blockUntilConnectedOrTimedOut() method doesn't do what is needed in this case, because
there's no way of specifying a timeout. We could call it in a loop I guess, but would need
a second thread to interrupt it when our specified time out occurred, which is pretty ugly.
Alternatively, we could modify the CuratorZookeeperClient to expose a blockUntilConnected()
method that takes a time out? And have blockUntilConnectedOrTimedOut call this with the connection
time out? Preferences?

If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at or file a JIRA ticket
with INFRA.

View raw message