|
@@ -35,13 +35,13 @@ import java.io.IOException;
|
|
|
import java.net.InetSocketAddress;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collection;
|
|
|
-import java.util.Collections;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.concurrent.locks.ReadWriteLock;
|
|
|
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
|
|
|
|
|
+import static java.util.Collections.unmodifiableList;
|
|
|
import static org.apache.hadoop.hdds.scm.HddsServerUtil
|
|
|
.getScmRpcTimeOutInMilliseconds;
|
|
|
|
|
@@ -184,7 +184,12 @@ public class SCMConnectionManager
|
|
|
* @return - List of RPC Endpoints.
|
|
|
*/
|
|
|
public Collection<EndpointStateMachine> getValues() {
|
|
|
- return scmMachines.values();
|
|
|
+ readLock();
|
|
|
+ try {
|
|
|
+ return unmodifiableList(new ArrayList<>(scmMachines.values()));
|
|
|
+ } finally {
|
|
|
+ readUnlock();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -201,9 +206,7 @@ public class SCMConnectionManager
|
|
|
public List<EndpointStateMachineMBean> getSCMServers() {
|
|
|
readLock();
|
|
|
try {
|
|
|
- return Collections
|
|
|
- .unmodifiableList(new ArrayList<>(scmMachines.values()));
|
|
|
-
|
|
|
+ return unmodifiableList(new ArrayList<>(scmMachines.values()));
|
|
|
} finally {
|
|
|
readUnlock();
|
|
|
}
|