From: Duarte Meneses Date: Thu, 22 Jul 2021 16:40:59 +0000 (-0500) Subject: SONAR-15230 Fix JVM startup args for Hazelcast X-Git-Tag: 9.1.0.47736~190 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c9676adac645c042119fa267bc98179f53f80169;p=sonarqube.git SONAR-15230 Fix JVM startup args for Hazelcast --- diff --git a/server/sonar-main/src/main/java/org/sonar/application/command/CeJvmOptions.java b/server/sonar-main/src/main/java/org/sonar/application/command/CeJvmOptions.java index 9896319fe15..57b367fe9cc 100644 --- a/server/sonar-main/src/main/java/org/sonar/application/command/CeJvmOptions.java +++ b/server/sonar-main/src/main/java/org/sonar/application/command/CeJvmOptions.java @@ -37,6 +37,14 @@ public class CeJvmOptions extends JvmOptions { res.put("-XX:-OmitStackTraceInFastThrow", ""); // avoid illegal reflective access operations done by MyBatis res.put("--add-opens=java.base/java.util=ALL-UNNAMED", ""); + + // avoid illegal reflective access operations done by Hazelcast + res.put("--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED", ""); + res.put("--add-opens=java.base/java.lang=ALL-UNNAMED", ""); + res.put("--add-opens=java.base/java.nio=ALL-UNNAMED", ""); + res.put("--add-opens=java.base/sun.nio.ch=ALL-UNNAMED", ""); + res.put("--add-opens=java.management/sun.management=ALL-UNNAMED", ""); + res.put("--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED", ""); return res; } } diff --git a/server/sonar-main/src/main/java/org/sonar/application/command/WebJvmOptions.java b/server/sonar-main/src/main/java/org/sonar/application/command/WebJvmOptions.java index e5a7ea1afed..b4eb48796c6 100644 --- a/server/sonar-main/src/main/java/org/sonar/application/command/WebJvmOptions.java +++ b/server/sonar-main/src/main/java/org/sonar/application/command/WebJvmOptions.java @@ -42,6 +42,14 @@ public class WebJvmOptions extends JvmOptions { res.put("--add-opens=java.base/java.lang=ALL-UNNAMED", ""); res.put("--add-opens=java.base/java.io=ALL-UNNAMED", ""); res.put("--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED", ""); + + // avoid illegal reflective access operations done by Hazelcast + res.put("--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED", ""); + res.put("--add-opens=java.base/java.nio=ALL-UNNAMED", ""); + res.put("--add-opens=java.base/sun.nio.ch=ALL-UNNAMED", ""); + res.put("--add-opens=java.management/sun.management=ALL-UNNAMED", ""); + res.put("--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED", ""); + return res; } } diff --git a/server/sonar-main/src/test/java/org/sonar/application/command/CeJvmOptionsTest.java b/server/sonar-main/src/test/java/org/sonar/application/command/CeJvmOptionsTest.java index db4bb86ef15..20171b98e4c 100644 --- a/server/sonar-main/src/test/java/org/sonar/application/command/CeJvmOptionsTest.java +++ b/server/sonar-main/src/test/java/org/sonar/application/command/CeJvmOptionsTest.java @@ -45,6 +45,12 @@ public class CeJvmOptionsTest { underTest = new CeJvmOptions(tmpDir); assertThat(underTest.getAll()).containsExactly( "-Djava.awt.headless=true", "-Dfile.encoding=UTF-8", "-Djava.io.tmpdir=" + tmpDir.getAbsolutePath(), "-XX:-OmitStackTraceInFastThrow", - "--add-opens=java.base/java.util=ALL-UNNAMED"); + "--add-opens=java.base/java.util=ALL-UNNAMED", + "--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED", + "--add-opens=java.base/java.lang=ALL-UNNAMED", + "--add-opens=java.base/java.nio=ALL-UNNAMED", + "--add-opens=java.base/sun.nio.ch=ALL-UNNAMED", + "--add-opens=java.management/sun.management=ALL-UNNAMED", + "--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED"); } } diff --git a/server/sonar-main/src/test/java/org/sonar/application/command/WebJvmOptionsTest.java b/server/sonar-main/src/test/java/org/sonar/application/command/WebJvmOptionsTest.java index e4f9da4b96f..3134c2f1ef6 100644 --- a/server/sonar-main/src/test/java/org/sonar/application/command/WebJvmOptionsTest.java +++ b/server/sonar-main/src/test/java/org/sonar/application/command/WebJvmOptionsTest.java @@ -49,7 +49,12 @@ public class WebJvmOptionsTest { "--add-opens=java.base/java.util=ALL-UNNAMED", "--add-opens=java.base/java.lang=ALL-UNNAMED", "--add-opens=java.base/java.io=ALL-UNNAMED", - "--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"); + "--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED", + "--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED", + "--add-opens=java.base/java.nio=ALL-UNNAMED", + "--add-opens=java.base/sun.nio.ch=ALL-UNNAMED", + "--add-opens=java.management/sun.management=ALL-UNNAMED", + "--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED"); } } diff --git a/sonar-application/src/main/assembly/conf/wrapper.conf b/sonar-application/src/main/assembly/conf/wrapper.conf index 360026d398d..c403dbd5b0d 100644 --- a/sonar-application/src/main/assembly/conf/wrapper.conf +++ b/sonar-application/src/main/assembly/conf/wrapper.conf @@ -14,6 +14,14 @@ wrapper.java.command=java #******************************************************************** wrapper.java.additional.1=-Dsonar.wrapped=true wrapper.java.additional.2=-Djava.awt.headless=true +# extra args needed by hazelcast +wrapper.java.additional.3=--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED +wrapper.java.additional.4=--add-opens=java.base/java.lang=ALL-UNNAMED +wrapper.java.additional.5=--add-opens=java.base/java.nio=ALL-UNNAMED +wrapper.java.additional.6=--add-opens=java.base/sun.nio.ch=ALL-UNNAMED +wrapper.java.additional.7=--add-opens=java.management/sun.management=ALL-UNNAMED +wrapper.java.additional.8=--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED + wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp wrapper.java.classpath.1=../../lib/sonar-application-@sqversion@.jar wrapper.java.classpath.2=../../lib/jsw/wrapper-3.2.3.jar