This is an automated email from the ASF dual-hosted git repository.

eyang pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 726b8e3  YARN-10228. Relax restriction of file path character in 
yarn.service.am.java.opts.             Contributed by Bilwa S T via eyang
726b8e3 is described below

commit 726b8e324b6fc99aac5a26fbbc7edd26a3a25479
Author: Eric Yang <ey...@apache.org>
AuthorDate: Wed May 20 09:20:53 2020 -0700

    YARN-10228. Relax restriction of file path character in 
yarn.service.am.java.opts.
                Contributed by Bilwa S T via eyang
---
 .../hadoop/yarn/service/utils/ServiceApiUtil.java     |  2 +-
 .../hadoop/yarn/service/utils/TestServiceApiUtil.java | 19 +++++++++++++++----
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/utils/ServiceApiUtil.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/utils/ServiceApiUtil.java
index 70c43f1..b4067d2 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/utils/ServiceApiUtil.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/utils/ServiceApiUtil.java
@@ -250,7 +250,7 @@ public class ServiceApiUtil {
 
   public static void validateJvmOpts(String jvmOpts)
       throws IllegalArgumentException {
-    Pattern pattern = Pattern.compile("[!~#?@*&%${}()<>\\[\\]|\"\\/,`;]");
+    Pattern pattern = Pattern.compile("[!~#?@*&%${}()<>\\[\\]|\",`;]");
     Matcher matcher = pattern.matcher(jvmOpts);
     if (matcher.find()) {
       throw new IllegalArgumentException(
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/utils/TestServiceApiUtil.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/utils/TestServiceApiUtil.java
index 1ac9613..5c80f85 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/utils/TestServiceApiUtil.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/utils/TestServiceApiUtil.java
@@ -46,10 +46,12 @@ import java.util.Collections;
 import java.util.List;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.apache.hadoop.test.LambdaTestUtils.intercept;
 import static 
org.apache.hadoop.yarn.service.conf.RestApiConstants.DEFAULT_UNLIMITED_LIFETIME;
 import static org.apache.hadoop.yarn.service.exceptions.RestApiErrorMessages.*;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
 
 /**
  * Test for ServiceApiUtil helper methods.
@@ -744,10 +746,19 @@ public class TestServiceApiUtil extends ServiceTestUtils {
     Assert.assertTrue(thread.isAlive());
   }
 
-  @Test(expected = IllegalArgumentException.class)
-  public void testJvmOpts() {
-    String jvmOpts = "`ping -c 3 example.com`";
-    ServiceApiUtil.validateJvmOpts(jvmOpts);
+  @Test
+  public void testJvmOpts() throws Exception {
+    String invalidJvmOpts = "`ping -c 3 example.com`";
+    intercept(IllegalArgumentException.class,
+        "Invalid character in yarn.service.am.java.opts.",
+        () -> ServiceApiUtil.validateJvmOpts(invalidJvmOpts));
+    String validJvmOpts = "-Dyarn.service.am.java.opts=-Xmx768m "
+        + "-Djava.security.auth.login.config=/opt/hadoop/etc/jaas-zk.conf";
+    try {
+      ServiceApiUtil.validateJvmOpts(validJvmOpts);
+    } catch (Exception ex) {
+      fail("Invalid character in yarn.service.am.java.opts.");
+    }
   }
 
   public static Service createExampleApplication() {


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to