From 9f5e45e5a21af2049b8874cd1663668059848f03 Mon Sep 17 00:00:00 2001 From: Ekaterina Dimitrova Date: Mon, 6 Nov 2023 19:35:31 -0500 Subject: [PATCH] Append additional JVM options when using JDK17+ patch by Ekaterina Dimitrova; reviewed by Paulo Motta for CASSANDRA-19001 --- CHANGES.txt | 1 + bin/cassandra.in.sh | 8 ++++++++ conf/jvm17-clients.options | 4 ---- conf/jvm17-server.options | 3 --- tools/bin/cassandra.in.sh | 8 ++++++++ 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 336edfb09f..268bfa42b3 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 5.0-beta2 + * Append additional JVM options when using JDK17+ (CASSANDRA-19001) * Upgrade Python driver to 3.29.0 (CASSANDRA-19245) * Creating a SASI index after creating an SAI index does not break secondary index queries (CASSANDRA-18939) * Optionally fail when a non-partition-restricted query is issued against an index (CASSANDRA-18796) diff --git a/bin/cassandra.in.sh b/bin/cassandra.in.sh index dfa17643fd..b838c2d4cf 100644 --- a/bin/cassandra.in.sh +++ b/bin/cassandra.in.sh @@ -161,3 +161,11 @@ for opt in `grep "^-" $JVM_OPTS_FILE` `grep "^-" $JVM_DEP_OPTS_FILE` do JVM_OPTS="$JVM_OPTS $opt" done + +# Append additional options when using JDK17+ (CASSANDRA-19001) +USING_JDK=$(command -v javac || command -v "${JAVA_HOME:-/usr}/bin/javac") +if [ -n "$USING_JDK" ] && [ "$JAVA_VERSION" -ge 17 ]; then + JVM_OPTS="$JVM_OPTS --add-exports jdk.attach/sun.tools.attach=ALL-UNNAMED" + JVM_OPTS="$JVM_OPTS --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED" + JVM_OPTS="$JVM_OPTS --add-opens jdk.compiler/com.sun.tools.javac=ALL-UNNAMED" +fi diff --git a/conf/jvm17-clients.options b/conf/jvm17-clients.options index 57b009f582..671d91b21f 100644 --- a/conf/jvm17-clients.options +++ b/conf/jvm17-clients.options @@ -34,9 +34,6 @@ --add-exports java.sql/java.sql=ALL-UNNAMED --add-exports java.base/java.lang.ref=ALL-UNNAMED --add-exports jdk.unsupported/sun.misc=ALL-UNNAMED ---add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED ---add-exports jdk.attach/sun.tools.attach=ALL-UNNAMED - --add-opens java.base/java.lang.module=ALL-UNNAMED --add-opens java.base/jdk.internal.loader=ALL-UNNAMED @@ -49,7 +46,6 @@ --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED ---add-opens jdk.compiler/com.sun.tools.javac=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.nio=ALL-UNNAMED diff --git a/conf/jvm17-server.options b/conf/jvm17-server.options index fb5d4517a6..bc084c920e 100644 --- a/conf/jvm17-server.options +++ b/conf/jvm17-server.options @@ -69,8 +69,6 @@ --add-exports java.sql/java.sql=ALL-UNNAMED --add-exports java.base/java.lang.ref=ALL-UNNAMED --add-exports jdk.unsupported/sun.misc=ALL-UNNAMED ---add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED ---add-exports jdk.attach/sun.tools.attach=ALL-UNNAMED --add-opens java.base/java.lang.module=ALL-UNNAMED --add-opens java.base/jdk.internal.loader=ALL-UNNAMED @@ -83,7 +81,6 @@ --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED ---add-opens jdk.compiler/com.sun.tools.javac=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.nio=ALL-UNNAMED diff --git a/tools/bin/cassandra.in.sh b/tools/bin/cassandra.in.sh index 632fc06a54..5d265d40f9 100644 --- a/tools/bin/cassandra.in.sh +++ b/tools/bin/cassandra.in.sh @@ -120,3 +120,11 @@ for opt in `grep "^-" $JVM_OPTS_FILE` `grep "^-" $JVM_DEP_OPTS_FILE` do JVM_OPTS="$JVM_OPTS $opt" done + +# Append additional options when using JDK17+ (CASSANDRA-19001) +USING_JDK=$(command -v javac || command -v "${JAVA_HOME:-/usr}/bin/javac") +if [ -n "$USING_JDK" ] && [ "$JAVA_VERSION" -ge 17 ]; then + JVM_OPTS="$JVM_OPTS --add-exports jdk.attach/sun.tools.attach=ALL-UNNAMED" + JVM_OPTS="$JVM_OPTS --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED" + JVM_OPTS="$JVM_OPTS --add-opens jdk.compiler/com.sun.tools.javac=ALL-UNNAMED" +fi