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

Reply via email to