Repository: incubator-ratis Updated Branches: refs/heads/master 86e744c1f -> 830569ed2
RATIS-134. PeerProxyMap#addPeers should add peers only if it is not already present in the proxymap. Contributed by Mukul Kumar Singh Project: http://git-wip-us.apache.org/repos/asf/incubator-ratis/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ratis/commit/830569ed Tree: http://git-wip-us.apache.org/repos/asf/incubator-ratis/tree/830569ed Diff: http://git-wip-us.apache.org/repos/asf/incubator-ratis/diff/830569ed Branch: refs/heads/master Commit: 830569ed20e8d00dcaf2f857a2bda2c993cc5f44 Parents: 86e744c Author: Tsz-Wo Nicholas Sze <[email protected]> Authored: Wed Nov 15 13:28:36 2017 -0800 Committer: Tsz-Wo Nicholas Sze <[email protected]> Committed: Wed Nov 15 13:28:36 2017 -0800 ---------------------------------------------------------------------- .../src/main/java/org/apache/ratis/util/PeerProxyMap.java | 8 ++++---- .../java/org/apache/ratis/grpc/client/AppendStreamer.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/830569ed/ratis-common/src/main/java/org/apache/ratis/util/PeerProxyMap.java ---------------------------------------------------------------------- diff --git a/ratis-common/src/main/java/org/apache/ratis/util/PeerProxyMap.java b/ratis-common/src/main/java/org/apache/ratis/util/PeerProxyMap.java index 6e18f23..8b52a7e 100644 --- a/ratis-common/src/main/java/org/apache/ratis/util/PeerProxyMap.java +++ b/ratis-common/src/main/java/org/apache/ratis/util/PeerProxyMap.java @@ -103,12 +103,12 @@ public class PeerProxyMap<PROXY extends Closeable> implements Closeable { public void addPeers(Iterable<RaftPeer> newPeers) { for(RaftPeer p : newPeers) { - peers.put(p.getId(), new PeerAndProxy(p)); + computeIfAbsent(p); } } - public void putIfAbsent(RaftPeer p) { - peers.putIfAbsent(p.getId(), new PeerAndProxy(p)); + public void computeIfAbsent(RaftPeer p) { + peers.computeIfAbsent(p.getId(), k -> new PeerAndProxy(p)); } public void resetProxy(RaftPeerId id) { @@ -117,7 +117,7 @@ public class PeerProxyMap<PROXY extends Closeable> implements Closeable { final PeerAndProxy pp = peers.remove(id); final RaftPeer peer = pp.getPeer(); pp.close(); - peers.put(id, new PeerAndProxy(peer)); + computeIfAbsent(peer); } } http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/830569ed/ratis-grpc/src/main/java/org/apache/ratis/grpc/client/AppendStreamer.java ---------------------------------------------------------------------- diff --git a/ratis-grpc/src/main/java/org/apache/ratis/grpc/client/AppendStreamer.java b/ratis-grpc/src/main/java/org/apache/ratis/grpc/client/AppendStreamer.java index c8c30fa..16095ef 100644 --- a/ratis-grpc/src/main/java/org/apache/ratis/grpc/client/AppendStreamer.java +++ b/ratis-grpc/src/main/java/org/apache/ratis/grpc/client/AppendStreamer.java @@ -380,7 +380,7 @@ public class AppendStreamer implements Closeable { // belongs to the current raft conf Arrays.stream(newPeers).forEach(peer -> { peers.putIfAbsent(peer.getId(), peer); - proxyMap.putIfAbsent(peer); + proxyMap.computeIfAbsent(peer); }); LOG.debug("refreshed peers: {}", peers);
