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

cnauroth 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 9c05d9667bc HADOOP-19526. Skip tests in Hadoop common that depend on 
SecurityManager if the JVM does not support it
9c05d9667bc is described below

commit 9c05d9667bcb1eb5f0fcaaa25a4a5b70e01ead65
Author: Istvan Toth <st...@apache.org>
AuthorDate: Tue May 13 18:09:14 2025 +0000

    HADOOP-19526. Skip tests in Hadoop common that depend on SecurityManager if 
the JVM does not support it
    
    Closes #7567
    
    Signed-off-by: Chris Nauroth <cnaur...@apache.org>
    Reviewed-by: He Xiaoqiao <hexiaoq...@apache.org>
---
 .../main/java/org/apache/hadoop/tools/DistCp.java  |  3 +-
 .../org/apache/hadoop/tools/TestExternalCall.java  | 45 +++++-----------------
 .../mapred/gridmix/TestGridmixSubmission.java      |  3 --
 3 files changed, 12 insertions(+), 39 deletions(-)

diff --git 
a/hadoop-tools/hadoop-distcp/src/main/java/org/apache/hadoop/tools/DistCp.java 
b/hadoop-tools/hadoop-distcp/src/main/java/org/apache/hadoop/tools/DistCp.java
index cba47545797..6b7db0c2d72 100644
--- 
a/hadoop-tools/hadoop-distcp/src/main/java/org/apache/hadoop/tools/DistCp.java
+++ 
b/hadoop-tools/hadoop-distcp/src/main/java/org/apache/hadoop/tools/DistCp.java
@@ -21,6 +21,7 @@
 import java.io.IOException;
 import java.util.Random;
 
+import org.apache.hadoop.util.ExitUtil;
 import org.apache.hadoop.util.Preconditions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -471,7 +472,7 @@ public static void main(String argv[]) {
       LOG.error("Couldn't complete DistCp operation: ", e);
       exitCode = DistCpConstants.UNKNOWN_ERROR;
     }
-    System.exit(exitCode);
+    ExitUtil.terminate(exitCode);
   }
 
   /**
diff --git 
a/hadoop-tools/hadoop-distcp/src/test/java/org/apache/hadoop/tools/TestExternalCall.java
 
b/hadoop-tools/hadoop-distcp/src/test/java/org/apache/hadoop/tools/TestExternalCall.java
index c50b1974f38..73e826445b1 100644
--- 
a/hadoop-tools/hadoop-distcp/src/test/java/org/apache/hadoop/tools/TestExternalCall.java
+++ 
b/hadoop-tools/hadoop-distcp/src/test/java/org/apache/hadoop/tools/TestExternalCall.java
@@ -27,13 +27,13 @@
 import org.apache.hadoop.mapreduce.Cluster;
 import org.apache.hadoop.mapreduce.JobSubmissionFiles;
 import org.apache.hadoop.tools.util.TestDistCpUtils;
+import org.apache.hadoop.util.ExitUtil;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
 import java.io.OutputStream;
-import java.security.Permission;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -64,9 +64,11 @@ private static Configuration getConf() {
 
   @BeforeEach
   public void setup() {
+    ExitUtil.disableSystemExit();
+    ExitUtil.disableSystemHalt();
+    ExitUtil.resetFirstExitException();
+    ExitUtil.resetFirstHaltException();
 
-    securityManager = System.getSecurityManager();
-    System.setSecurityManager(new NoExitSecurityManager());
     try {
       fs = FileSystem.get(getConf());
       root = new Path("target/tmp").makeQualified(fs.getUri(),
@@ -79,10 +81,12 @@ public void setup() {
 
   @AfterEach
   public void tearDown() {
-    System.setSecurityManager(securityManager);
+    ExitUtil.resetFirstExitException();
+    ExitUtil.resetFirstHaltException();
   }
+
 /**
- * test methods run end execute of DistCp class. silple copy file
+ * test methods run end execute of DistCp class. simple copy file
  * @throws Exception 
  */
   @Test
@@ -136,7 +140,7 @@ public void testCleanupTestViaToolRunner() throws 
IOException, InterruptedExcept
       DistCp.main(arg);
       fail();
 
-    } catch (ExitException t) {
+    } catch (ExitUtil.ExitException t) {
       assertTrue(fs.exists(target));
       assertEquals(t.status, 0);
       assertEquals(
@@ -175,33 +179,4 @@ public void testCleanupOfJob() throws Exception {
   }
 
 
-  private SecurityManager securityManager;
-
-  protected static class ExitException extends SecurityException {
-    private static final long serialVersionUID = -1982617086752946683L;
-    public final int status;
-
-    public ExitException(int status) {
-      super("There is no escape!");
-      this.status = status;
-    }
-  }
-
-  private static class NoExitSecurityManager extends SecurityManager {
-    @Override
-    public void checkPermission(Permission perm) {
-      // allow anything.
-    }
-
-    @Override
-    public void checkPermission(Permission perm, Object context) {
-      // allow anything.
-    }
-
-    @Override
-    public void checkExit(int status) {
-      super.checkExit(status);
-      throw new ExitException(status);
-    }
-  }
 }
diff --git 
a/hadoop-tools/hadoop-gridmix/src/test/java/org/apache/hadoop/mapred/gridmix/TestGridmixSubmission.java
 
b/hadoop-tools/hadoop-gridmix/src/test/java/org/apache/hadoop/mapred/gridmix/TestGridmixSubmission.java
index 9fbc03c538a..8bcdd4fc9a7 100644
--- 
a/hadoop-tools/hadoop-gridmix/src/test/java/org/apache/hadoop/mapred/gridmix/TestGridmixSubmission.java
+++ 
b/hadoop-tools/hadoop-gridmix/src/test/java/org/apache/hadoop/mapred/gridmix/TestGridmixSubmission.java
@@ -181,8 +181,6 @@ public void testStressSubmit() throws Exception {
   @Timeout(value = 100)
   public void testMain() throws Exception {
 
-    SecurityManager securityManager = System.getSecurityManager();
-
     final ByteArrayOutputStream bytes = new ByteArrayOutputStream();
     final PrintStream out = new PrintStream(bytes);
     final PrintStream oldOut = System.out;
@@ -197,7 +195,6 @@ public void testMain() throws Exception {
       ExitUtil.resetFirstExitException();
     } finally {
       System.setErr(oldOut);
-      System.setSecurityManager(securityManager);
     }
     String print = bytes.toString();
     // should be printed tip in std error stream


---------------------------------------------------------------------
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