Index: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/AMRMClientImpl.java =================================================================== --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/AMRMClientImpl.java (revision 1537549) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/AMRMClientImpl.java (working copy) @@ -499,13 +499,15 @@ for (String location : locations) { TreeMap reqs = remoteRequests.get(location); - if (reqs != null && !reqs.isEmpty() - && reqs.values().iterator().next().remoteRequest.getRelaxLocality() - != relaxLocality) { - throw new InvalidContainerRequestException("Cannot submit a " - + "ContainerRequest asking for location " + location - + " with locality relaxation " + relaxLocality + " when it has " - + "already been requested with locality relaxation " + relaxLocality); + if (reqs != null && !reqs.isEmpty()) { + boolean existingRelaxLocality = + reqs.values().iterator().next().remoteRequest.getRelaxLocality(); + if (relaxLocality != existingRelaxLocality) { + throw new InvalidContainerRequestException("Cannot submit a " + + "ContainerRequest asking for location " + location + + " with locality relaxation " + relaxLocality + " when it has " + + "already been requested with locality relaxation " + existingRelaxLocality); + } } } }