浏览代码

YARN-6501. FSSchedulerNode.java fails to compile with JDK7. Contributed by John Zhuge

Jason Lowe 8 年之前
父节点
当前提交
f5a9287bb1

+ 7 - 2
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSSchedulerNode.java

@@ -180,8 +180,13 @@ public class FSSchedulerNode extends SchedulerNode {
   void addContainersForPreemption(Collection<RMContainer> containers,
                                   FSAppAttempt app) {
 
-    appIdToAppMap.putIfAbsent(app.getApplicationAttemptId(), app);
-    resourcesPreemptedForApp.putIfAbsent(app, Resource.newInstance(0, 0));
+    ApplicationAttemptId attempt = app.getApplicationAttemptId();
+    if (appIdToAppMap.get(attempt) == null) {
+      appIdToAppMap.put(attempt, app);
+    }
+    if (resourcesPreemptedForApp.get(app) == null) {
+      resourcesPreemptedForApp.put(app, Resource.newInstance(0, 0));
+    }
     Resource appReserved = resourcesPreemptedForApp.get(app);
 
     for(RMContainer container : containers) {