diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationAttemptsResponsePBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationAttemptsResponsePBImpl.java index b79f425..8c0167e 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationAttemptsResponsePBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationAttemptsResponsePBImpl.java @@ -18,7 +18,10 @@ package org.apache.hadoop.yarn.api.protocolrecords.impl.pb; +import java.io.Serializable; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.Iterator; import java.util.List; @@ -69,6 +72,10 @@ public void setApplicationAttemptList( builder.clearApplicationAttempts(); } this.applicationAttemptList = applicationAttempts; + if (this.applicationAttemptList != null) { + Collections.sort(this.applicationAttemptList, + new ApplicationAttemptReportComparator()); + } } public GetApplicationAttemptsResponseProto getProto() { @@ -134,6 +141,8 @@ private void initLocalApplicationAttemptsList() { for (ApplicationAttemptReportProto a : list) { applicationAttemptList.add(convertFromProtoFormat(a)); } + Collections.sort(applicationAttemptList, + new ApplicationAttemptReportComparator()); } private void addLocalApplicationAttemptsToProto() { @@ -183,4 +192,14 @@ private ApplicationAttemptReportProto convertToProtoFormat( return ((ApplicationAttemptReportPBImpl) t).getProto(); } + + private static class ApplicationAttemptReportComparator + implements Comparator, Serializable { + @Override + public int compare(ApplicationAttemptReport o1, + ApplicationAttemptReport o2) { + return o1.getApplicationAttemptId() + .compareTo(o2.getApplicationAttemptId()); + } + } } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsResponsePBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsResponsePBImpl.java index 453fc89..62f87ba 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsResponsePBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsResponsePBImpl.java @@ -18,7 +18,10 @@ package org.apache.hadoop.yarn.api.protocolrecords.impl.pb; +import java.io.Serializable; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.Iterator; import java.util.List; @@ -66,6 +69,9 @@ public void setApplicationList(List applications) { if (applications == null) builder.clearApplications(); this.applicationList = applications; + if (this.applicationList != null) { + Collections.sort(this.applicationList, new ApplicationReportComparator()); + } } public GetApplicationsResponseProto getProto() { @@ -129,6 +135,7 @@ private void initLocalApplicationsList() { for (ApplicationReportProto a : list) { applicationList.add(convertFromProtoFormat(a)); } + Collections.sort(applicationList, new ApplicationReportComparator()); } private void addLocalApplicationsToProto() { @@ -173,4 +180,11 @@ private ApplicationReportProto convertToProtoFormat(ApplicationReport t) { return ((ApplicationReportPBImpl)t).getProto(); } + private static class ApplicationReportComparator + implements Comparator, Serializable { + @Override + public int compare(ApplicationReport o1, ApplicationReport o2) { + return o1.getApplicationId().compareTo(o2.getApplicationId()); + } + } } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetContainersResponsePBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetContainersResponsePBImpl.java index 6caec10..1e88a67 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetContainersResponsePBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetContainersResponsePBImpl.java @@ -18,7 +18,10 @@ package org.apache.hadoop.yarn.api.protocolrecords.impl.pb; +import java.io.Serializable; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.Iterator; import java.util.List; @@ -66,6 +69,9 @@ public void setContainerList(List containers) { builder.clearContainers(); } this.containerList = containers; + if (this.containerList != null) { + Collections.sort(this.containerList, new ContainerReportComparator()); + } } public GetContainersResponseProto getProto() { @@ -131,6 +137,7 @@ private void initLocalContainerList() { for (ContainerReportProto c : list) { containerList.add(convertFromProtoFormat(c)); } + Collections.sort(containerList, new ContainerReportComparator()); } private void addLocalContainersToProto() { @@ -177,4 +184,11 @@ private ContainerReportProto convertToProtoFormat(ContainerReport t) { return ((ContainerReportPBImpl) t).getProto(); } + private static class ContainerReportComparator + implements Comparator, Serializable { + @Override + public int compare(ContainerReport o1, ContainerReport o2) { + return o1.getContainerId().compareTo(o2.getContainerId()); + } + } } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryClientService.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryClientService.java index 60027e9..115e58d 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryClientService.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryClientService.java @@ -168,7 +168,7 @@ public void testContainers() throws IOException, YarnException { clientService.getClientHandler().getContainers(request); List containers = response.getContainerList(); Assert.assertNotNull(containers); - Assert.assertEquals(containerId, containers.get(1).getContainerId()); - Assert.assertEquals(containerId1, containers.get(0).getContainerId()); + Assert.assertEquals(containerId, containers.get(0).getContainerId()); + Assert.assertEquals(containerId1, containers.get(1).getContainerId()); } }