You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by an...@apache.org on 2016/04/22 00:54:10 UTC

lucene-solr:branch_6x: SOLR-8599: Improved the tests for this issue to avoid changing a variable to non-final

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_6x 8d655fbd4 -> 78176e23b


SOLR-8599: Improved the tests for this issue to avoid changing a variable to non-final


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/78176e23
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/78176e23
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/78176e23

Branch: refs/heads/branch_6x
Commit: 78176e23bcac5c6e4accd8989dc931ec6cedb188
Parents: 8d655fb
Author: Dennis Gove <dp...@gmail.com>
Authored: Sun Mar 20 11:13:56 2016 -0400
Committer: Anshum Gupta <an...@apache.org>
Committed: Thu Apr 21 15:19:33 2016 -0700

----------------------------------------------------------------------
 .../solr/cloud/ConnectionManagerTest.java       | 40 ++++++++++++++++----
 .../solr/common/cloud/ConnectionManager.java    |  8 +---
 2 files changed, 33 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/78176e23/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java b/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java
index c16d758..7eec2c0 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.solr.cloud;
 
+import java.io.IOException;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
@@ -23,9 +24,14 @@ import java.util.concurrent.TimeUnit;
 import org.apache.lucene.util.LuceneTestCase.Slow;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.cloud.ConnectionManager;
+import org.apache.solr.common.cloud.DefaultConnectionStrategy;
+import org.apache.solr.common.cloud.OnReconnect;
 import org.apache.solr.common.cloud.SolrZkClient;
+import org.apache.solr.common.cloud.ZkClientConnectionStrategy;
+import org.apache.solr.common.cloud.ZkClientConnectionStrategy.ZkUpdate;
 import org.apache.solr.util.DefaultSolrThreadFactory;
 import org.apache.zookeeper.WatchedEvent;
+import org.apache.zookeeper.Watcher;
 import org.apache.zookeeper.Watcher.Event.EventType;
 import org.apache.zookeeper.Watcher.Event.KeeperState;
 import org.junit.Ignore;
@@ -129,22 +135,19 @@ public class ConnectionManagerTest extends SolrTestCaseJ4 {
       AbstractZkTestCase.tryCleanSolrZkNode(server.getZkHost());
       AbstractZkTestCase.makeSolrZkNode(server.getZkHost());
       
-      SolrZkClient zkClient = new SolrZkClient(server.getZkAddress(), TIMEOUT);
+      MockZkClientConnectionStrategy strat = new MockZkClientConnectionStrategy();
+      SolrZkClient zkClient = new SolrZkClient(server.getZkAddress(), TIMEOUT, strat , null);
       ConnectionManager cm = zkClient.getConnectionManager();
+      
       try {
         assertFalse(cm.isLikelyExpired());
         assertTrue(cm.isConnected());
-        
-        
-        cm.setZkServerAddress("http://BADADDRESS");
-        executor.schedule(() -> {
-          cm.setZkServerAddress(server.getZkAddress()); 
-        }, 5, TimeUnit.SECONDS);
-        
+               
         // reconnect -- should no longer be likely expired
         cm.process(new WatchedEvent(EventType.None, KeeperState.Expired, ""));
         assertFalse(cm.isLikelyExpired());
         assertTrue(cm.isConnected());
+        assertTrue(strat.isExceptionThrow());
       } finally {
         cm.close();
         zkClient.close();
@@ -154,4 +157,25 @@ public class ConnectionManagerTest extends SolrTestCaseJ4 {
       server.shutdown();
     }
   }
+  
+  private class MockZkClientConnectionStrategy extends DefaultConnectionStrategy {
+    int called = 0;
+    boolean exceptionThrown = false;
+    
+    @Override
+    public void reconnect(final String serverAddress, final int zkClientTimeout,
+        final Watcher watcher, final ZkUpdate updater) throws IOException {
+      
+      if(called++ < 1) {
+        exceptionThrown = true;
+        throw new IOException("Testing");
+      }
+      
+      super.reconnect(serverAddress, zkClientTimeout, watcher, updater);
+    }
+    
+    public boolean isExceptionThrow() {
+      return exceptionThrown;
+    }
+  }
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/78176e23/solr/solrj/src/java/org/apache/solr/common/cloud/ConnectionManager.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/ConnectionManager.java b/solr/solrj/src/java/org/apache/solr/common/cloud/ConnectionManager.java
index cc9327a..1754a2d 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/ConnectionManager.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/ConnectionManager.java
@@ -37,8 +37,7 @@ public class ConnectionManager implements Watcher {
 
   private final ZkClientConnectionStrategy connectionStrategy;
 
-  //expert: mutable for testing
-  private String zkServerAddress;
+  private final String zkServerAddress;
 
   
 
@@ -255,9 +254,4 @@ public class ConnectionManager implements Watcher {
           "", e);
     }
   }
-  
-  //expert: mutable for testing
-  public void setZkServerAddress(String zkServerAddress) {
-    this.zkServerAddress = zkServerAddress;
-  }
 }