This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 589e83561c69679136250a009ed4035d73780d65 Author: Tiewei Fang <43782773+bepppo...@users.noreply.github.com> AuthorDate: Mon Jan 29 23:19:08 2024 +0800 [Fix](jdk17) support start FE with JDK17 (#29658) (#30485) Issue Number: close #30484 problem: gson will use Java's reflection mechanism to generate a default Adapter, but JDK17 is prohibited from visiting such an access. solution: gson has provided solutions since 2.9.1, which can bypass this problem: Add support for reflection access filter by Marcono1234 · Pull Request #1905 · google/gson We need to upgrade the gson version and use this solution --- conf/fe.conf | 2 +- fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java | 2 ++ fe/pom.xml | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/conf/fe.conf b/conf/fe.conf index a8d30963890..4bae10ef224 100644 --- a/conf/fe.conf +++ b/conf/fe.conf @@ -39,7 +39,7 @@ JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx8192m -XX: JAVA_OPTS_FOR_JDK_9="-Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx8192m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xlog:gc*:$DORIS_HOME/log/fe.gc.log.$CUR_DATE:time -Dlog4j2.formatMsgNoLookups=true" # For jdk 16+, this JAVA_OPTS will be used as default JVM options -JAVA_OPTS_FOR_JDK_16="-Djavax.security.auth.useSubjectCredsOnly=false -XX:+UseZGC -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$DORIS_HOME/log/ -Xlog:gc*:$DORIS_HOME/log/fe.gc.log.$CUR_DATE:time --add-opens java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.ref=ALL-UNNAMED --add-opens java.base/java.util.regex=ALL-UNNAMED --add-opens java.base/ [...] +JAVA_OPTS_FOR_JDK_16="-Djavax.security.auth.useSubjectCredsOnly=false -XX:+UseZGC -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$DORIS_HOME/log/ -Xlog:gc*:$DORIS_HOME/log/fe.gc.log.$CUR_DATE:time" ## ## the lowercase properties are read by main program. diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java b/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java index 54c109b61a5..fb1b9d8b5ff 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java +++ b/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java @@ -122,6 +122,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; +import com.google.gson.ReflectionAccessFilter; import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; @@ -282,6 +283,7 @@ public class GsonUtils { // Add any other adapters if necessary. private static final GsonBuilder GSON_BUILDER = new GsonBuilder().addSerializationExclusionStrategy( new HiddenAnnotationExclusionStrategy()).enableComplexMapKeySerialization() + .addReflectionAccessFilter(ReflectionAccessFilter.BLOCK_INACCESSIBLE_JAVA) .registerTypeHierarchyAdapter(Table.class, new GuavaTableAdapter()) .registerTypeHierarchyAdapter(Multimap.class, new GuavaMultimapAdapter()) .registerTypeAdapterFactory(new PostProcessTypeAdapterFactory()) diff --git a/fe/pom.xml b/fe/pom.xml index 33959e978d6..f64538fecba 100644 --- a/fe/pom.xml +++ b/fe/pom.xml @@ -239,7 +239,7 @@ under the License. <commons-pool.version>1.5.1</commons-pool.version> <commons-text.version>1.10.0</commons-text.version> <commons-validator.version>1.7</commons-validator.version> - <gson.version>2.8.9</gson.version> + <gson.version>2.10.1</gson.version> <guava.version>32.1.2-jre</guava.version> <jackson.version>2.15.2</jackson.version> <java-cup.version>0.11-a-czt02-cdh</java-cup.version> --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org