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