You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2014/01/21 09:20:57 UTC

svn commit: r1559936 - in /lucene/dev/trunk/solr/core/src: java/org/apache/solr/cloud/OverseerCollectionProcessor.java test/org/apache/solr/cloud/OverseerRolesTest.java

Author: noble
Date: Tue Jan 21 08:20:57 2014
New Revision: 1559936

URL: http://svn.apache.org/r1559936
Log:
SOLR-5476 handle nonode exception

Modified:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/OverseerRolesTest.java

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java?rev=1559936&r1=1559935&r2=1559936&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java Tue Jan 21 08:20:57 2014
@@ -307,7 +307,13 @@ public class OverseerCollectionProcessor
   }
 
   public static String getLeaderNode(SolrZkClient zkClient) throws KeeperException, InterruptedException {
-    Map m = (Map) ZkStateReader.fromJSON(zkClient.getData("/overseer_elect/leader", null, new Stat(), true));
+    byte[] data = new byte[0];
+    try {
+      data = zkClient.getData("/overseer_elect/leader", null, new Stat(), true);
+    } catch (KeeperException.NoNodeException e) {
+      return null;
+    }
+    Map m = (Map) ZkStateReader.fromJSON(data);
     String s = (String) m.get("id");
 //    log.info("leader-id {}",s);
     String nodeName = LeaderElector.getNodeName(s);

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/OverseerRolesTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/OverseerRolesTest.java?rev=1559936&r1=1559935&r2=1559936&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/OverseerRolesTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/OverseerRolesTest.java Tue Jan 21 08:20:57 2014
@@ -99,7 +99,7 @@ public class OverseerRolesTest  extends 
 
     ArrayList<String> l = new ArrayList<>(nodes);
     log.info("All nodes {}", l);
-    String currentLeader = getLeaderNode(client);
+    String currentLeader = OverseerCollectionProcessor.getLeaderNode(client.getZkStateReader().getZkClient());
     log.info("Current leader {} ", currentLeader);
     l.remove(currentLeader);
 
@@ -112,7 +112,7 @@ public class OverseerRolesTest  extends 
 
     boolean leaderchanged = false;
     for(;System.currentTimeMillis() < timeout;){
-      if(getLeaderNode(client).equals(overseerDesignate)){
+      if(overseerDesignate.equals(OverseerCollectionProcessor.getLeaderNode(client.getZkStateReader().getZkClient()))){
         log.info("overseer designate is the new overseer");
         leaderchanged =true;
         break;
@@ -168,15 +168,6 @@ public class OverseerRolesTest  extends 
     client.request(request);
   }
 
-  private String getLeaderNode(CloudSolrServer client) throws KeeperException, InterruptedException {
-    Map m = (Map) ZkStateReader.fromJSON(client.getZkStateReader().getZkClient().getData("/overseer_elect/leader", null, new Stat(), true));
-    String s = (String) m.get("id");
-//    log.info("leader-id {}",s);
-    String nodeName = LeaderElector.getNodeName(s);
-//    log.info("Leader {}", nodeName);
-    return nodeName;
-  }
-
   protected void createCollection(String COLL_NAME, CloudSolrServer client) throws Exception {
     int replicationFactor = 2;
     int numShards = 4;