diff --git a/vagrant/base.sh b/vagrant/base.sh index 6fe256538c267..c5ebd4f110bcd 100755 --- a/vagrant/base.sh +++ b/vagrant/base.sh @@ -32,12 +32,35 @@ fetch_jdk_tgz() { if [ ! -e $path ]; then mkdir -p $(dirname $path) - curl --retry 5 -s -L "https://s3-us-west-2.amazonaws.com/kafka-packages/jdk-${jdk_version}.tar.gz" -o $path + curl --retry 5 -s -L "https://s3-us-west-2.amazonaws.com/kafka-packages/jdk/jdk-${jdk_version}.tar.gz" -o $path fi } -JDK_MAJOR="${JDK_MAJOR:-17}" -JDK_FULL="${JDK_FULL:-17-linux-x64}" +# Validate JDK_MAJOR - must be a version number (e.g., 17, 25.0.1), default to 17 if empty or invalid +if [[ -z "$JDK_MAJOR" ]]; then + JDK_MAJOR="17" +elif [[ ! "$JDK_MAJOR" =~ ^[0-9]+(u[0-9]+|(\.[0-9]+)+)?$ ]]; then + echo "WARNING: Invalid JDK_MAJOR format '$JDK_MAJOR'. Expected format: 17, 21.0.1, 25.0.2. Defaulting to 17." + JDK_MAJOR="17" +fi + +# Validate JDK_ARCH - default to x64 if empty or invalid +if [[ -z "$JDK_ARCH" ]]; then + JDK_ARCH="x64" +elif [[ ! "$JDK_ARCH" =~ ^(x64|aarch64)$ ]]; then + echo "WARNING: Invalid JDK_ARCH format '$JDK_ARCH'. Expected: x64 or aarch64. Defaulting to x64." + JDK_ARCH="x64" +fi + +# Use JDK_FULL if provided and valid, otherwise construct from JDK_MAJOR and JDK_ARCH +if [[ -z "$JDK_FULL" ]]; then + JDK_FULL="${JDK_MAJOR}-linux-${JDK_ARCH}" +elif [[ ! "$JDK_FULL" =~ ^[0-9]+(u[0-9]+|(\.[0-9]+)+)?-linux-(x64|aarch64)$ ]]; then + echo "WARNING: Invalid JDK_FULL format '$JDK_FULL'. Constructing from JDK_MAJOR and JDK_ARCH." + JDK_FULL="${JDK_MAJOR}-linux-${JDK_ARCH}" +fi + +echo "JDK_MAJOR=$JDK_MAJOR JDK_ARCH=$JDK_ARCH JDK_FULL=$JDK_FULL" if [ -z `which javac` ]; then apt-get -y update