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

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


The following commit(s) were added to refs/heads/master by this push:
     new 762cd4d  [IOTDB-2593] Fix cannot insert data using JDK17 (#5106)
762cd4d is described below

commit 762cd4ddea991dbfc6e87dcb68ad7d4564fda52e
Author: Haonan <[email protected]>
AuthorDate: Wed Feb 23 16:07:01 2022 +0800

    [IOTDB-2593] Fix cannot insert data using JDK17 (#5106)
---
 cluster/src/assembly/resources/sbin/add-node.bat    |  2 +-
 cluster/src/assembly/resources/sbin/add-node.sh     |  2 +-
 cluster/src/assembly/resources/sbin/start-node.bat  |  2 +-
 cluster/src/assembly/resources/sbin/start-node.sh   |  2 +-
 server/src/assembly/resources/conf/iotdb-env.bat    | 11 +++++++++++
 server/src/assembly/resources/conf/iotdb-env.sh     |  8 ++++++++
 server/src/assembly/resources/sbin/start-server.bat |  2 +-
 server/src/assembly/resources/sbin/start-server.sh  |  2 +-
 8 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/cluster/src/assembly/resources/sbin/add-node.bat 
b/cluster/src/assembly/resources/sbin/add-node.bat
index 15a708a..d272cf9 100755
--- a/cluster/src/assembly/resources/sbin/add-node.bat
+++ b/cluster/src/assembly/resources/sbin/add-node.bat
@@ -117,7 +117,7 @@ goto :eof
 
 rem echo CLASSPATH: %CLASSPATH%
 
-"%JAVA_HOME%\bin\java" %JAVA_OPTS% %IOTDB_HEAP_OPTS% -cp %CLASSPATH% 
%IOTDB_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
+"%JAVA_HOME%\bin\java" %ILLEGAL_ACCESS_PARAMS% %JAVA_OPTS% %IOTDB_HEAP_OPTS% 
-cp %CLASSPATH% %IOTDB_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
 goto finally
 
 :err
diff --git a/cluster/src/assembly/resources/sbin/add-node.sh 
b/cluster/src/assembly/resources/sbin/add-node.sh
index fdd3f65..3212999 100755
--- a/cluster/src/assembly/resources/sbin/add-node.sh
+++ b/cluster/src/assembly/resources/sbin/add-node.sh
@@ -85,7 +85,7 @@ launch_service()
        iotdb_parms="$iotdb_parms -DTSFILE_HOME=${IOTDB_HOME}"
        iotdb_parms="$iotdb_parms -DIOTDB_CONF=${IOTDB_CONF}"
        iotdb_parms="$iotdb_parms -Dname=iotdb\.IoTDB"
-       exec "$JAVA" $iotdb_parms $IOTDB_JMX_OPTS -cp "$CLASSPATH" "$class" -a
+       exec "$JAVA" $illegal_access_params $iotdb_parms $IOTDB_JMX_OPTS -cp 
"$CLASSPATH" "$class" -a
        return $?
 }
 
diff --git a/cluster/src/assembly/resources/sbin/start-node.bat 
b/cluster/src/assembly/resources/sbin/start-node.bat
index 4e50d8b..a16e79b 100755
--- a/cluster/src/assembly/resources/sbin/start-node.bat
+++ b/cluster/src/assembly/resources/sbin/start-node.bat
@@ -120,7 +120,7 @@ goto :eof
 
 rem echo CLASSPATH: %CLASSPATH%
 
-"%JAVA_HOME%\bin\java" %JAVA_OPTS% %IOTDB_HEAP_OPTS% -cp %CLASSPATH% 
%IOTDB_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
+"%JAVA_HOME%\bin\java" %ILLEGAL_ACCESS_PARAMS% %JAVA_OPTS% %IOTDB_HEAP_OPTS% 
-cp %CLASSPATH% %IOTDB_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
 goto finally
 
 :err
diff --git a/cluster/src/assembly/resources/sbin/start-node.sh 
b/cluster/src/assembly/resources/sbin/start-node.sh
index 001407f..31a84f5 100755
--- a/cluster/src/assembly/resources/sbin/start-node.sh
+++ b/cluster/src/assembly/resources/sbin/start-node.sh
@@ -87,7 +87,7 @@ launch_service()
        iotdb_parms="$iotdb_parms -DIOTDB_CONF=${IOTDB_CONF}"
        iotdb_parms="$iotdb_parms -DTSFILE_CONF=${IOTDB_CONF}"
        iotdb_parms="$iotdb_parms -Dname=iotdb\.IoTDB"
-       exec "$JAVA" $iotdb_parms $IOTDB_JMX_OPTS -cp "$CLASSPATH" "$class" 
$CONF_PARAMS
+       exec "$JAVA" $illegal_access_params $iotdb_parms $IOTDB_JMX_OPTS -cp 
"$CLASSPATH" "$class" $CONF_PARAMS
        return $?
 }
 
diff --git a/server/src/assembly/resources/conf/iotdb-env.bat 
b/server/src/assembly/resources/conf/iotdb-env.bat
index cf55d4c..df6b0d6 100644
--- a/server/src/assembly/resources/conf/iotdb-env.bat
+++ b/server/src/assembly/resources/conf/iotdb-env.bat
@@ -130,6 +130,17 @@ IF "%1" equ "printgc" (
        )
 )
 
+@REM Add args for Java 11 and above, due to [JEP 396: Strongly Encapsulate JDK 
Internals by Default] (https://openjdk.java.net/jeps/396)
+IF "%JAVA_VERSION%" == "8" (
+    set ILLEGAL_ACCESS_PARAMS=
+) ELSE (
+    set 
ILLEGAL_ACCESS_PARAMS=--add-opens=java.base/java.util.concurrent=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^
+     --add-opens=java.base/java.io=ALL-UNNAMED^
+     --add-opens=java.base/java.net=ALL-UNNAMED
+)
 
 echo Maximum memory allocation pool = %MAX_HEAP_SIZE%, initial memory 
allocation pool = %HEAP_NEWSIZE%
 echo If you want to change this configuration, please check 
conf/iotdb-env.sh(Unix or OS X, if you use Windows, check conf/iotdb-env.bat).
diff --git a/server/src/assembly/resources/conf/iotdb-env.sh 
b/server/src/assembly/resources/conf/iotdb-env.sh
index 342ec15..8b0e016 100755
--- a/server/src/assembly/resources/conf/iotdb-env.sh
+++ b/server/src/assembly/resources/conf/iotdb-env.sh
@@ -164,6 +164,7 @@ fi
 
 version_arr=(${JVM_VERSION//./ })
 
+illegal_access_params=""
 #GC log path has to be defined here because it needs to access IOTDB_HOME
 if [ "${version_arr[0]}" = "1" ] ; then
     # Java 8
@@ -189,6 +190,13 @@ else
             IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS 
-Xlog:gc=info,heap*=info,age*=info,safepoint=info,promotion*=info:file=${IOTDB_HOME}/logs/gc.log:time,uptime,pid,tid,level:filecount=10,filesize=10485760"
         fi
     fi
+    # Add argLine for Java 11 and above, due to [JEP 396: Strongly Encapsulate 
JDK Internals by Default] (https://openjdk.java.net/jeps/396)
+    illegal_access_params="$illegal_access_params 
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED"
+    illegal_access_params="$illegal_access_params 
--add-opens=java.base/java.lang=ALL-UNNAMED"
+    illegal_access_params="$illegal_access_params 
--add-opens=java.base/java.util=ALL-UNNAMED"
+    illegal_access_params="$illegal_access_params 
--add-opens=java.base/java.nio=ALL-UNNAMED"
+    illegal_access_params="$illegal_access_params 
--add-opens=java.base/java.io=ALL-UNNAMED"
+    illegal_access_params="$illegal_access_params 
--add-opens=java.base/java.net=ALL-UNNAMED"
 fi
 
 
diff --git a/server/src/assembly/resources/sbin/start-server.bat 
b/server/src/assembly/resources/sbin/start-server.bat
index ffb339e..2c07383 100755
--- a/server/src/assembly/resources/sbin/start-server.bat
+++ b/server/src/assembly/resources/sbin/start-server.bat
@@ -110,7 +110,7 @@ goto :eof
 
 rem echo CLASSPATH: %CLASSPATH%
 
-"%JAVA_HOME%\bin\java" %JAVA_OPTS% %IOTDB_HEAP_OPTS% -cp %CLASSPATH% 
%IOTDB_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
+"%JAVA_HOME%\bin\java" %ILLEGAL_ACCESS_PARAMS% %JAVA_OPTS% %IOTDB_HEAP_OPTS% 
-cp %CLASSPATH% %IOTDB_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
 goto finally
 
 :err
diff --git a/server/src/assembly/resources/sbin/start-server.sh 
b/server/src/assembly/resources/sbin/start-server.sh
index a4d58fc..c1c44f3 100755
--- a/server/src/assembly/resources/sbin/start-server.sh
+++ b/server/src/assembly/resources/sbin/start-server.sh
@@ -72,7 +72,7 @@ launch_service()
        iotdb_parms="$iotdb_parms -DIOTDB_CONF=${IOTDB_CONF}"
        iotdb_parms="$iotdb_parms -DTSFILE_CONF=${IOTDB_CONF}"
        iotdb_parms="$iotdb_parms -Dname=iotdb\.IoTDB"
-       exec "$JAVA" $iotdb_parms $IOTDB_JMX_OPTS -cp "$CLASSPATH" "$class" 
$CONF_PARAMS
+       exec "$JAVA" $illegal_access_params $iotdb_parms $IOTDB_JMX_OPTS -cp 
"$CLASSPATH" "$class" $CONF_PARAMS
        return $?
 }
 

Reply via email to