This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 9d2780f1540 [Fix](jdk17) support start FE with JDK17 (#29658) (#30485)
9d2780f1540 is described below
commit 9d2780f15406aac055f2626387301e0d2aeee401
Author: Tiewei Fang <[email protected]>
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 95071a43051..607bfe0ee4f 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
@@ -126,6 +126,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;
@@ -300,6 +301,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 e0018b8c181..51157e30082 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: [email protected]
For additional commands, e-mail: [email protected]