diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java index c168337d011..da8d130ba5e 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java @@ -62,9 +62,11 @@ private static final Pattern RESOURCE_REQUEST_VALUE_PATTERN = Pattern.compile("^([0-9]+) ?([a-zA-Z]*)$"); + private static final String RESOURCE_NAME_PATTERN_STR = "(((\\p{Alnum}" + + "([\\p{Alnum}-]*\\p{Alnum})?\\.)*\\p{Alnum}([\\p{Alnum}-]*" + + "\\p{Alnum})?)/)?\\p{Alpha}([\\w.-]*)$"; private static final Pattern RESOURCE_NAME_PATTERN = Pattern.compile( - "^(((\\p{Alnum}([\\p{Alnum}-]*\\p{Alnum})?\\.)*" - + "\\p{Alnum}([\\p{Alnum}-]*\\p{Alnum})?)/)?\\p{Alpha}([\\w.-]*)$"); + "^" + RESOURCE_NAME_PATTERN_STR); private static volatile boolean initializedResources = false; private static final Map RESOURCE_NAME_TO_INDEX = @@ -603,7 +605,7 @@ public static void reinitializeResources( Configuration configuration, String prefix) { List result = new ArrayList<>(); Map customResourcesMap = configuration - .getValByRegex("^" + Pattern.quote(prefix) + "[^.]+$"); + .getValByRegex("^" + Pattern.quote(prefix) + RESOURCE_NAME_PATTERN_STR); for (Entry resource : customResourcesMap.entrySet()) { String resourceName = resource.getKey().substring(prefix.length()); Matcher matcher =