diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerConfiguration.java index a88beef8c97..990c8f3de8c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerConfiguration.java @@ -1552,20 +1552,23 @@ public QueueOrderingPolicy getQueueOrderingPolicy(String queue, } String policyType = get(getQueuePrefix(queue) + ORDERING_POLICY, - defaultPolicy); + defaultPolicy).trim(); QueueOrderingPolicy qop; - if (policyType.trim().equals(QUEUE_UTILIZATION_ORDERING_POLICY)) { + if (policyType.equals(QUEUE_UTILIZATION_ORDERING_POLICY)) { // Doesn't respect priority qop = new PriorityUtilizationQueueOrderingPolicy(false); - } else if (policyType.trim().equals( + } else if (policyType.equals( QUEUE_PRIORITY_UTILIZATION_ORDERING_POLICY)) { qop = new PriorityUtilizationQueueOrderingPolicy(true); } else { - String message = - "Unable to construct queue ordering policy=" + policyType + " queue=" - + queue; - throw new YarnRuntimeException(message); + try { + qop = (QueueOrderingPolicy) Class.forName(policyType).newInstance(); + } catch (Exception e) { + String message = "Unable to construct queue ordering policy=" + + policyType + " queue=" + queue; + throw new YarnRuntimeException(message, e); + } } return qop;