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

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


The following commit(s) were added to refs/heads/master by this push:
     new 60b021c9a KNOX-3246 - Make Java discovery deterministic and support 
JDK 11/17 (#1141)
60b021c9a is described below

commit 60b021c9a8c4f21f363ca1651207e6c441a155e9
Author: Sandor Molnar <[email protected]>
AuthorDate: Thu Jan 29 15:37:48 2026 +0100

    KNOX-3246 - Make Java discovery deterministic and support JDK 11/17 (#1141)
    
    Extend JAVA_VERSION_PATTERNS to include modern JDK layouts and
    /usr/java/default. Follow symlinks during discovery and sort
    candidates to ensure deterministic Java selection on hosts with
    multiple JDKs installed.
---
 gateway-release-common/home/bin/knox-functions.sh | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/gateway-release-common/home/bin/knox-functions.sh 
b/gateway-release-common/home/bin/knox-functions.sh
index 7bd072abe..37e0d9b03 100644
--- a/gateway-release-common/home/bin/knox-functions.sh
+++ b/gateway-release-common/home/bin/knox-functions.sh
@@ -61,7 +61,18 @@ function setVerbose() {
   done
 }
 
-JAVA_VERSION_PATTERNS=( "1.6.0_31/bin/java$" "1.6.0_.*/bin/java$" 
"1.6.0.*/bin/java$" "1.6\..*/bin/java$" "/bin/java$" )
+JAVA_VERSION_PATTERNS=(
+  "/default/bin/java$"
+  "1.6.0_31/bin/java$"
+  "1.6.0_.*/bin/java$"
+  "1.6.0.*/bin/java$"
+  "1.6\..*/bin/java$"
+  "jdk1\.11.*?/bin/java$"
+  "jdk-11.*?/bin/java$"
+  "jdk1\.17.*?/bin/java$"
+  "jdk-17.*?/bin/java$"
+  "/bin/java$"
+)
 
 function findJava() {
   # Check to make sure any existing JAVA var is valid.
@@ -92,8 +103,7 @@ function findJava() {
   # Use the search patterns to find java.
   if [ "$JAVA" == "" ]; then
     for pattern in "${JAVA_VERSION_PATTERNS[@]}"; do
-      # shellcheck disable=SC2207
-      JAVA=$(find /usr -executable -name java -print 2> /dev/null | grep 
"$pattern" | head -n 1 )
+      JAVA=$(find -L /usr -executable -name java -print 2> /dev/null | grep 
"$pattern" | sort | head -n 1 )
       if [ -x "$JAVA" ]; then
         break
       else

Reply via email to