diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java index 68f44dc6d54..4dd17818aee 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java @@ -35,6 +35,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock; import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock; +import com.google.common.collect.Lists; import org.apache.commons.collections.keyvalue.DefaultMapEntry; import org.apache.hadoop.yarn.server.api.records.NodeStatus; import org.slf4j.Logger; @@ -172,12 +173,11 @@ new HashSet(); /* the list of applications that have finished and need to be purged */ - private final List finishedApplications = - new ArrayList(); + private final Set finishedApplications = new HashSet<>(); /* the list of applications that are running on this node */ - private final List runningApplications = - new ArrayList(); + private final Set runningApplications = + new HashSet<>(); private final Map toBeUpdatedContainers = new HashMap<>(); @@ -634,7 +634,8 @@ public void setAndUpdateNodeHeartbeatResponse( try { response.addAllContainersToCleanup( new ArrayList(this.containersToClean)); - response.addAllApplicationsToCleanup(this.finishedApplications); + response.addAllApplicationsToCleanup(Lists.newArrayList( + this.finishedApplications)); response.addContainersToBeRemovedFromNM( new ArrayList(this.containersToBeRemovedFromNM)); response.addAllContainersToSignal(this.containersToSignal);