Selaa lähdekoodia

YARN-2813. Fixed NPE from MemoryTimelineStore.getDomains. Contributed by Zhijie Shen

Xuan 10 vuotta sitten
vanhempi
commit
e4b4901d36

+ 2 - 0
hadoop-yarn-project/CHANGES.txt

@@ -872,6 +872,8 @@ Release 2.6.0 - UNRELEASED
     FatalEventDispatcher try to transition RM to StandBy at the same time.
     (Rohith Sharmaks via jianhe)
 
+    YARN-2813. Fixed NPE from MemoryTimelineStore.getDomains. (Zhijie Shen via xgong)
+
 Release 2.5.2 - UNRELEASED
 
   INCOMPATIBLE CHANGES

+ 4 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/MemoryTimelineStore.java

@@ -241,6 +241,10 @@ public class MemoryTimelineStore
   public TimelineDomains getDomains(String owner)
       throws IOException {
     List<TimelineDomain> domains = new ArrayList<TimelineDomain>();
+    Set<TimelineDomain> domainsOfOneOwner = domainsByOwner.get(owner);
+    if (domainsOfOneOwner == null) {
+      return new TimelineDomains();
+    }
     for (TimelineDomain domain : domainsByOwner.get(owner)) {
       TimelineDomain domainToReturn = createTimelineDomain(
           domain.getId(),

+ 4 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/timeline/TimelineStoreTestUtils.java

@@ -946,6 +946,10 @@ public class TimelineStoreTestUtils {
     assertEquals(2, actualDomains.getDomains().size());
     verifyDomainInfo(domain3, actualDomains.getDomains().get(0));
     verifyDomainInfo(domain1, actualDomains.getDomains().get(1));
+
+    // owner without any domain
+    actualDomains = store.getDomains("owner_4");
+    assertEquals(0, actualDomains.getDomains().size());
   }
 
   private static void verifyDomainInfo(