Return-Path: Delivered-To: apmail-lucene-solr-commits-archive@minotaur.apache.org Received: (qmail 12393 invoked from network); 13 Dec 2009 18:33:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 13 Dec 2009 18:33:42 -0000 Received: (qmail 34740 invoked by uid 500); 13 Dec 2009 18:33:42 -0000 Delivered-To: apmail-lucene-solr-commits-archive@lucene.apache.org Received: (qmail 34686 invoked by uid 500); 13 Dec 2009 18:33:42 -0000 Mailing-List: contact solr-commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: solr-dev@lucene.apache.org Delivered-To: mailing list solr-commits@lucene.apache.org Received: (qmail 34677 invoked by uid 99); 13 Dec 2009 18:33:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 13 Dec 2009 18:33:42 +0000 X-ASF-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 13 Dec 2009 18:33:40 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 9707A23889B8; Sun, 13 Dec 2009 18:33:20 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r890090 - /lucene/solr/branches/cloud/src/java/org/apache/solr/core/ZooKeeperController.java Date: Sun, 13 Dec 2009 18:33:20 -0000 To: solr-commits@lucene.apache.org From: markrmiller@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20091213183320.9707A23889B8@eris.apache.org> Author: markrmiller Date: Sun Dec 13 18:33:20 2009 New Revision: 890090 URL: http://svn.apache.org/viewvc?rev=890090&view=rev Log: explore how we might handle async ZK client connect in ZooKeeperController - needs thought. Modified: lucene/solr/branches/cloud/src/java/org/apache/solr/core/ZooKeeperController.java Modified: lucene/solr/branches/cloud/src/java/org/apache/solr/core/ZooKeeperController.java URL: http://svn.apache.org/viewvc/lucene/solr/branches/cloud/src/java/org/apache/solr/core/ZooKeeperController.java?rev=890090&r1=890089&r2=890090&view=diff ============================================================================== --- lucene/solr/branches/cloud/src/java/org/apache/solr/core/ZooKeeperController.java (original) +++ lucene/solr/branches/cloud/src/java/org/apache/solr/core/ZooKeeperController.java Sun Dec 13 18:33:20 2009 @@ -16,6 +16,7 @@ import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooKeeper; +import org.apache.zookeeper.Watcher.Event.KeeperState; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xml.sax.SAXException; @@ -34,6 +35,8 @@ private String configName; private String collectionName; + + private boolean connected = false; /** * @param zookeeperHost ZooKeeper host service @@ -46,9 +49,19 @@ try { keeper = new ZooKeeper(zookeeperHost, 10000, this); - // TODO - log.warn("TODO: remove sleep that waits for zookeeper client"); - try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();} + // TODO: nocommit: this is asynchronous - think about how to deal with connection + // lost, and other failures + synchronized (this) { + while (!connected) { + try { + this.wait(); + } catch (InterruptedException e) { + // nocommit + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } loadConfigPath(); register(); @@ -85,6 +98,13 @@ public void process(WatchedEvent event) { // nocommit System.out.println("ZooKeeper Event:" + event); + // nocommit: consider how we want to accomplish this + if (event.getState() == KeeperState.SyncConnected) { + synchronized (this) { + connected = true; + this.notify(); + } + } } private void loadConfigPath() {