Просмотр исходного кода

HDDS-1882. TestReplicationManager failed with NPE. (#1197)

(cherry picked from commit e111789aeb005c76e443c96418cd9fddf9bdb8a2)
Sammi Chen 5 лет назад
Родитель
Сommit
bb7ce03cc0

+ 5 - 2
hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ReplicationManager.java

@@ -486,8 +486,11 @@ public class ReplicationManager {
         final List<DatanodeDetails> excludeList = replicas.stream()
         final List<DatanodeDetails> excludeList = replicas.stream()
             .map(ContainerReplica::getDatanodeDetails)
             .map(ContainerReplica::getDatanodeDetails)
             .collect(Collectors.toList());
             .collect(Collectors.toList());
-        inflightReplication.get(id).stream().map(r -> r.datanode)
-            .forEach(excludeList::add);
+        List<InflightAction> actionList = inflightReplication.get(id);
+        if (actionList != null) {
+          actionList.stream().map(r -> r.datanode)
+              .forEach(excludeList::add);
+        }
         final List<DatanodeDetails> selectedDatanodes = containerPlacement
         final List<DatanodeDetails> selectedDatanodes = containerPlacement
             .chooseDatanodes(excludeList, null, delta,
             .chooseDatanodes(excludeList, null, delta,
                 container.getUsedBytes());
                 container.getUsedBytes());