You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2011/12/15 04:28:15 UTC

svn commit: r1214613 - in /lucene/dev/branches/solrcloud/solr: core/src/java/org/apache/solr/cloud/Overseer.java core/src/test/org/apache/solr/cloud/OverseerTest.java solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java

Author: markrmiller
Date: Thu Dec 15 03:28:15 2011
New Revision: 1214613

URL: http://svn.apache.org/viewvc?rev=1214613&view=rev
Log:
whoops - checking for the wrong exception in last commit

Modified:
    lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/Overseer.java
    lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
    lucene/dev/branches/solrcloud/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/Overseer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/Overseer.java?rev=1214613&r1=1214612&r2=1214613&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/Overseer.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/Overseer.java Thu Dec 15 03:28:15 2011
@@ -32,6 +32,8 @@ import org.apache.solr.common.SolrExcept
 import org.apache.solr.common.cloud.*;
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.KeeperException;
+import org.apache.zookeeper.KeeperException.NoNodeException;
+import org.apache.zookeeper.KeeperException.NodeExistsException;
 import org.apache.zookeeper.WatchedEvent;
 import org.apache.zookeeper.Watcher;
 import org.apache.zookeeper.KeeperException.Code;
@@ -153,10 +155,8 @@ public class Overseer implements NodeSta
             if (!zkClient.exists(path)) {
               zkClient.makePath(path);
             }
-          } catch (KeeperException e) {
-            if (e.code() != Code.NODEEXISTS) {
-              throw e;
-            }
+          } catch (NodeExistsException e) {
+            // thats okay...
           }
 
           NodeStateWatcher nsw = new NodeStateWatcher(zkClient, nodeName, path, this);

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java?rev=1214613&r1=1214612&r2=1214613&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java Thu Dec 15 03:28:15 2011
@@ -318,7 +318,6 @@ public class OverseerTest extends SolrTe
       // wait overseer assignment
       waitForSliceCount(reader, "collection1", 1);
       
-      // nocommit: when testOverseerFailure runs after testStateChange, it fails with an NPE below
       assertEquals("Illegal state", ZkStateReader.RECOVERING,
           reader.getCloudState().getSlice("collection1", "shard1").getShards()
               .get("core1").get(ZkStateReader.STATE_PROP));

Modified: lucene/dev/branches/solrcloud/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java?rev=1214613&r1=1214612&r2=1214613&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java (original)
+++ lucene/dev/branches/solrcloud/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java Thu Dec 15 03:28:15 2011
@@ -42,6 +42,8 @@ import org.apache.zookeeper.SolrZooKeepe
 import org.apache.zookeeper.Watcher;
 import org.apache.zookeeper.ZooDefs;
 import org.apache.zookeeper.ZooKeeper;
+import org.apache.zookeeper.KeeperException.NoNodeException;
+import org.apache.zookeeper.KeeperException.NodeExistsException;
 import org.apache.zookeeper.data.ACL;
 import org.apache.zookeeper.data.Stat;
 import org.slf4j.Logger;
@@ -381,7 +383,14 @@ public class SolrZkClient {
           mode = createMode;
           bytes = data;
         }
-        keeper.create(currentPath, bytes, ZooDefs.Ids.OPEN_ACL_UNSAFE, mode);
+        try {
+          keeper.create(currentPath, bytes, ZooDefs.Ids.OPEN_ACL_UNSAFE, mode);
+        } catch (NodeExistsException e) {
+          // ignore unless it's the last node in the path
+          if (i == paths.length - 1) {
+            throw e;
+          }
+        }
         if(i == paths.length -1) {
           // set new watch
           exists(currentPath, watcher);