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

ayushtkn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new 8d6b51e48a7 HIVE-29776: Clean up JavaVersionUtils for JDK 21. Removed 
legacy Java 8 detection since JDK 21 is now the minimum supported version. 
(#6649)
8d6b51e48a7 is described below

commit 8d6b51e48a742f2d22da838a9103aaa08c807f63
Author: kokila-19 <[email protected]>
AuthorDate: Sat Aug 1 05:32:32 2026 +0530

    HIVE-29776: Clean up JavaVersionUtils for JDK 21. Removed legacy Java 8 
detection since JDK 21 is now the minimum supported version. (#6649)
---
 .../hadoop/hive/common/JavaVersionUtils.java       | 61 ++++++++--------------
 .../templeton/tool/TempletonControllerJob.java     |  2 +-
 .../apache/hadoop/hive/ql/exec/mr/ExecDriver.java  | 14 +++--
 .../apache/hadoop/hive/ql/exec/tez/DagUtils.java   |  2 +-
 .../hadoop/hive/ql/exec/tez/TezSessionState.java   |  2 +-
 5 files changed, 32 insertions(+), 49 deletions(-)

diff --git 
a/common/src/java/org/apache/hadoop/hive/common/JavaVersionUtils.java 
b/common/src/java/org/apache/hadoop/hive/common/JavaVersionUtils.java
index 61fe010bf16..3d6b6d6f51c 100644
--- a/common/src/java/org/apache/hadoop/hive/common/JavaVersionUtils.java
+++ b/common/src/java/org/apache/hadoop/hive/common/JavaVersionUtils.java
@@ -24,44 +24,29 @@ private JavaVersionUtils() {
   }
 
   /**
-   * Returns the detected Java major version (e.g., 8, 11, 17).
+   * Returns JVM --add-opens flags for Tez/MR child processes.
    */
-  public static int getJavaMajorVersion() {
-    return Math.max(8, Integer.parseInt(
-        System.getProperty("java.specification.version").split("\\.")[0]));
-  }
-
-  /**
-   * Returns the full --add-opens string if Java 9, or an empty string if Java 
8 or below.
-   */
-  public static String getAddOpensFlagsIfNeeded() {
-    //TODO: Please remove this once the codebase has been migrated to JDK 9 or 
a higher version.
-    int javaVersion = getJavaMajorVersion();
-    if (javaVersion >= 9) {
-      return " --add-opens=java.base/java.net=ALL-UNNAMED" +
-          " --add-opens=java.base/java.util=ALL-UNNAMED" +
-          " --add-opens=java.base/java.util.concurrent=ALL-UNNAMED" +
-          " --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" +
-          " --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" +
-          " --add-opens=java.base/java.lang=ALL-UNNAMED" +
-          " --add-opens=java.base/java.io=ALL-UNNAMED" +
-          " --add-opens=java.base/java.lang=ALL-UNNAMED" +
-          " --add-opens=java.base/java.lang.invoke=ALL-UNNAMED" +
-          " --add-opens=java.base/java.lang.reflect=ALL-UNNAMED" +
-          " --add-opens=java.base/java.math=ALL-UNNAMED" +
-          " --add-opens=java.base/java.nio=ALL-UNNAMED" +
-          " --add-opens=java.base/java.text=ALL-UNNAMED" +
-          " --add-opens=java.base/java.time=ALL-UNNAMED" +
-          " --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED" +
-          " --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED" +
-          " --add-opens=java.sql/java.sql=ALL-UNNAMED" +
-          " --add-opens=java.base/sun.nio.ch=ALL-UNNAMED" +
-          " --add-opens=java.base/sun.nio.cs=ALL-UNNAMED" +
-          " --add-opens=java.base/java.util.regex=ALL-UNNAMED" +
-          " --add-opens=java.base/java.security=ALL-UNNAMED" +
-          " --add-opens=java.base/sun.security.provider=ALL-UNNAMED";
-    } else {
-      return ""; // Java 8 or lower does not need add-opens
-    }
+  public static String getAddOpensFlags() {
+    return " --add-opens=java.base/java.net=ALL-UNNAMED" +
+        " --add-opens=java.base/java.util=ALL-UNNAMED" +
+        " --add-opens=java.base/java.util.concurrent=ALL-UNNAMED" +
+        " --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" +
+        " --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" +
+        " --add-opens=java.base/java.lang=ALL-UNNAMED" +
+        " --add-opens=java.base/java.io=ALL-UNNAMED" +
+        " --add-opens=java.base/java.lang.invoke=ALL-UNNAMED" +
+        " --add-opens=java.base/java.lang.reflect=ALL-UNNAMED" +
+        " --add-opens=java.base/java.math=ALL-UNNAMED" +
+        " --add-opens=java.base/java.nio=ALL-UNNAMED" +
+        " --add-opens=java.base/java.text=ALL-UNNAMED" +
+        " --add-opens=java.base/java.time=ALL-UNNAMED" +
+        " --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED" +
+        " --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED" +
+        " --add-opens=java.sql/java.sql=ALL-UNNAMED" +
+        " --add-opens=java.base/sun.nio.ch=ALL-UNNAMED" +
+        " --add-opens=java.base/sun.nio.cs=ALL-UNNAMED" +
+        " --add-opens=java.base/java.util.regex=ALL-UNNAMED" +
+        " --add-opens=java.base/java.security=ALL-UNNAMED" +
+        " --add-opens=java.base/sun.security.provider=ALL-UNNAMED";
   }
 }
diff --git 
a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/TempletonControllerJob.java
 
b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/TempletonControllerJob.java
index 7253e31b034..e6a5aa078d3 100644
--- 
a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/TempletonControllerJob.java
+++ 
b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/TempletonControllerJob.java
@@ -124,7 +124,7 @@ public int run(String[] args) throws IOException, 
InterruptedException, ClassNot
       conf.set(AppConfig.HADOOP_MR_AM_MEMORY_MB, amMemoryMB);
     }
     String amJavaOpts = 
StringUtils.defaultString(appConf.controllerAMChildOpts());
-    amJavaOpts += JavaVersionUtils.getAddOpensFlagsIfNeeded();
+    amJavaOpts += JavaVersionUtils.getAddOpensFlags();
     if (!amJavaOpts.isEmpty()) {
       conf.set(AppConfig.HADOOP_MR_AM_JAVA_OPTS, amJavaOpts);
     }
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java
index e96ca2c0697..719b1dbcc8c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java
@@ -374,7 +374,7 @@ public int execute() {
         }
       }
 
-      addOpensFlagsIfNeeded(job);
+      addOpensFlags(job);
       jc = new JobClient(job);
       // make this client wait if job tracker is not behaving well.
       Throttle.checkJobTracker(job, LOG);
@@ -493,13 +493,11 @@ public int execute() {
     return (returnVal);
   }
 
-  private static void addOpensFlagsIfNeeded(JobConf job) {
-    String addOpens = JavaVersionUtils.getAddOpensFlagsIfNeeded();
-    if(!addOpens.isEmpty()) {
-      addJavaOpts(job, "mapreduce.map.java.opts", addOpens);
-      addJavaOpts(job, "mapreduce.reduce.java.opts", addOpens);
-      addJavaOpts(job, "yarn.app.mapreduce.am.command-opts", addOpens);
-    }
+  private static void addOpensFlags(JobConf job) {
+    String addOpens = JavaVersionUtils.getAddOpensFlags();
+    addJavaOpts(job, "mapreduce.map.java.opts", addOpens);
+    addJavaOpts(job, "mapreduce.reduce.java.opts", addOpens);
+    addJavaOpts(job, "yarn.app.mapreduce.am.command-opts", addOpens);
   }
   private static void addJavaOpts(JobConf job, String conf, String extraOpts) {
     String javaOpts = StringUtils.defaultString(job.get(conf));
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java
index a36364956c7..7921295c4c4 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java
@@ -728,7 +728,7 @@ private static String getContainerJavaOpts(Configuration 
conf) {
       }
       finalOpts = logLevel + " " + MRHelpers.getJavaOptsForMRMapper(conf);
     }
-    finalOpts += JavaVersionUtils.getAddOpensFlagsIfNeeded();
+    finalOpts += JavaVersionUtils.getAddOpensFlags();
     LOG.debug("Tez container final opts: {}", finalOpts);
     return finalOpts;
   }
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionState.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionState.java
index b50c15cf9b6..70b9b99144e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionState.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionState.java
@@ -582,7 +582,7 @@ private void setupTezParamsBasedOnMR(TezConfiguration conf) 
{
     }
 
     String mrAmJavaOpts = conf.get(TezConfiguration.TEZ_AM_LAUNCH_CMD_OPTS, 
MRHelpers.getJavaOptsForMRAM(conf));
-    conf.set(TezConfiguration.TEZ_AM_LAUNCH_CMD_OPTS, mrAmJavaOpts + 
JavaVersionUtils.getAddOpensFlagsIfNeeded());
+    conf.set(TezConfiguration.TEZ_AM_LAUNCH_CMD_OPTS, mrAmJavaOpts + 
JavaVersionUtils.getAddOpensFlags());
 
     String queueName = conf.get(JobContext.QUEUE_NAME, 
YarnConfiguration.DEFAULT_QUEUE_NAME);
     conf.setIfUnset(TezConfiguration.TEZ_QUEUE_NAME, queueName);

Reply via email to