This is an automated email from the ASF dual-hosted git repository.

shashikant pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ratis.git


The following commit(s) were added to refs/heads/master by this push:
     new 8fed368  RATIS-512. testLeaderStepDown may fail with 
NullPointerException. Contributed by Tsz Wo Nicholas Sze.
8fed368 is described below

commit 8fed3689c7b6b6d94fd1b808dd018855f2b21f1f
Author: Shashikant Banerjee <[email protected]>
AuthorDate: Mon Apr 1 11:15:06 2019 +0530

    RATIS-512. testLeaderStepDown may fail with NullPointerException. 
Contributed by Tsz Wo Nicholas Sze.
---
 .../src/test/java/org/apache/ratis/MiniRaftCluster.java       | 11 +++++------
 .../src/test/java/org/apache/ratis/RaftExceptionBaseTest.java |  3 ++-
 .../apache/ratis/server/impl/RaftReconfigurationBaseTest.java |  3 ++-
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java 
b/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java
index eef9d1b..74c19a1 100644
--- a/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java
+++ b/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java
@@ -424,12 +424,12 @@ public abstract class MiniRaftCluster implements 
Closeable {
    * prepare the peer list when removing some peers from the conf
    */
   public PeerChanges removePeers(int number, boolean removeLeader,
-      Collection<RaftPeer> excluded) {
+      Collection<RaftPeer> excluded) throws InterruptedException {
     Collection<RaftPeer> peers = new ArrayList<>(group.getPeers());
     List<RaftPeer> removedPeers = new ArrayList<>(number);
     if (removeLeader) {
-      final RaftPeer leader = toRaftPeer(getLeader());
-      assert !excluded.contains(leader);
+      final RaftPeer leader = toRaftPeer(RaftTestUtil.waitForLeader(this));
+      Preconditions.assertTrue(!excluded.contains(leader));
       peers.remove(leader);
       removedPeers.add(leader);
     }
@@ -443,10 +443,9 @@ public abstract class MiniRaftCluster implements Closeable 
{
         removed++;
       }
     }
-    RaftPeer[] p = peers.toArray(new RaftPeer[peers.size()]);
+    final RaftPeer[] p = peers.toArray(RaftPeer.emptyArray());
     group = RaftGroup.valueOf(group.getGroupId(), p);
-    return new PeerChanges(p, new RaftPeer[0],
-        removedPeers.toArray(new RaftPeer[removedPeers.size()]));
+    return new PeerChanges(p, RaftPeer.emptyArray(), 
removedPeers.toArray(RaftPeer.emptyArray()));
   }
 
   public void killServer(RaftPeerId id) {
diff --git 
a/ratis-server/src/test/java/org/apache/ratis/RaftExceptionBaseTest.java 
b/ratis-server/src/test/java/org/apache/ratis/RaftExceptionBaseTest.java
index 6d58bbc..9cf0d9b 100644
--- a/ratis-server/src/test/java/org/apache/ratis/RaftExceptionBaseTest.java
+++ b/ratis-server/src/test/java/org/apache/ratis/RaftExceptionBaseTest.java
@@ -30,6 +30,7 @@ import org.apache.ratis.util.JavaUtils;
 import org.apache.ratis.util.LogUtils;
 import org.apache.ratis.util.SizeInBytes;
 import org.junit.Assert;
+import org.junit.Assume;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -91,7 +92,7 @@ public abstract class RaftExceptionBaseTest<CLUSTER extends 
MiniRaftCluster>
     final SimpleMessage message = new SimpleMessage(messageId);
     final RaftClientReply reply = 
rpc.sendRequest(cluster.newRaftClientRequest(ClientId.randomId(), server, 
message));
     Assert.assertNotNull(reply);
-    Assert.assertFalse(reply.isSuccess());
+    Assume.assumeFalse(reply.isSuccess());
     final NotLeaderException nle = reply.getNotLeaderException();
     Objects.requireNonNull(nle);
     Assert.assertEquals(expectedSuggestedLeader, 
nle.getSuggestedLeader().getId());
diff --git 
a/ratis-server/src/test/java/org/apache/ratis/server/impl/RaftReconfigurationBaseTest.java
 
b/ratis-server/src/test/java/org/apache/ratis/server/impl/RaftReconfigurationBaseTest.java
index a8d4ade..f96ceff 100644
--- 
a/ratis-server/src/test/java/org/apache/ratis/server/impl/RaftReconfigurationBaseTest.java
+++ 
b/ratis-server/src/test/java/org/apache/ratis/server/impl/RaftReconfigurationBaseTest.java
@@ -175,7 +175,8 @@ public abstract class RaftReconfigurationBaseTest<CLUSTER 
extends MiniRaftCluste
 
           latch.countDown();
           client.close();
-        } catch (IOException ignored) {
+        } catch(Exception ignored) {
+          LOG.warn(ignored.getClass().getSimpleName() + " is ignored", 
ignored);
         }
       });
       clientThread.start();

Reply via email to