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

Reply via email to