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();