YARN-7589. TestPBImplRecords fails with NullPointerException. Contributed by Daniel Templeton
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/25df5054 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/25df5054 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/25df5054 Branch: refs/heads/HDFS-7240 Commit: 25df5054216a6a76d09d9c49984f8075ebc6a197 Parents: c83fe44 Author: Jason Lowe <[email protected]> Authored: Fri Dec 1 15:37:36 2017 -0600 Committer: Jason Lowe <[email protected]> Committed: Fri Dec 1 15:37:36 2017 -0600 ---------------------------------------------------------------------- .../org/apache/hadoop/yarn/api/records/Resource.java | 9 ++++++--- .../hadoop/yarn/util/resource/ResourceUtils.java | 13 +++++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/25df5054/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java index b32955b..304a963 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java @@ -102,9 +102,12 @@ public abstract class Resource implements Comparable<Resource> { @Stable public static Resource newInstance(long memory, int vCores, Map<String, Long> others) { - ResourceInformation[] info = ResourceUtils.createResourceTypesArray(others); - - return new LightWeightResource(memory, vCores, info); + if (others != null) { + return new LightWeightResource(memory, vCores, + ResourceUtils.createResourceTypesArray(others)); + } else { + return newInstance(memory, vCores); + } } @InterfaceAudience.Private http://git-wip-us.apache.org/repos/asf/hadoop/blob/25df5054/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java index 3c6ca98..76ae061 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java @@ -313,15 +313,13 @@ public class ResourceUtils { } public static ResourceInformation[] getResourceTypesArray() { - initializeResourceTypesIfNeeded(null, - YarnConfiguration.RESOURCE_TYPES_CONFIGURATION_FILE); + initializeResourceTypesIfNeeded(); return resourceTypesArray; } public static int getNumberOfKnownResourceTypes() { if (numKnownResourceTypes < 0) { - initializeResourceTypesIfNeeded(null, - YarnConfiguration.RESOURCE_TYPES_CONFIGURATION_FILE); + initializeResourceTypesIfNeeded(); } return numKnownResourceTypes; } @@ -332,6 +330,11 @@ public class ResourceUtils { YarnConfiguration.RESOURCE_TYPES_CONFIGURATION_FILE); } + private static void initializeResourceTypesIfNeeded() { + initializeResourceTypesIfNeeded(null, + YarnConfiguration.RESOURCE_TYPES_CONFIGURATION_FILE); + } + private static void initializeResourceTypesIfNeeded(Configuration conf, String resourceFile) { if (!initializedResources) { @@ -641,6 +644,8 @@ public class ResourceUtils { */ public static ResourceInformation[] createResourceTypesArray(Map<String, Long> res) { + initializeResourceTypesIfNeeded(); + ResourceInformation[] info = new ResourceInformation[resourceTypes.size()]; for (Entry<String, Integer> entry : RESOURCE_NAME_TO_INDEX.entrySet()) { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
