You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2024/03/06 05:09:17 UTC
(doris) 06/47: [Bug](resource) fix npe on Resource read from json (#31723)
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 0c71b666d76667365d3d31bbc969f199a967243a
Author: Pxl <px...@qq.com>
AuthorDate: Mon Mar 4 16:58:53 2024 +0800
[Bug](resource) fix npe on Resource read from json (#31723)
fix npe on Resource read from json
---
fe/fe-core/src/main/java/org/apache/doris/catalog/EsResource.java | 4 ++++
fe/fe-core/src/main/java/org/apache/doris/catalog/HMSResource.java | 4 ++++
.../src/main/java/org/apache/doris/catalog/HdfsResource.java | 4 ++++
.../main/java/org/apache/doris/catalog/OdbcCatalogResource.java | 1 -
fe/fe-core/src/main/java/org/apache/doris/catalog/Resource.java | 3 +++
fe/fe-core/src/main/java/org/apache/doris/catalog/S3Resource.java | 7 +++----
.../src/main/java/org/apache/doris/catalog/SparkResource.java | 5 +++++
7 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/EsResource.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/EsResource.java
index fa1a4a11822..8203a051129 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/EsResource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/EsResource.java
@@ -77,6 +77,10 @@ public class EsResource extends Resource {
@SerializedName(value = "properties")
private Map<String, String> properties;
+ public EsResource() {
+ super();
+ }
+
public EsResource(String name) {
super(name, Resource.ResourceType.ES);
properties = Maps.newHashMap();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/HMSResource.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/HMSResource.java
index 4ccf2792bc1..0a3b422fc1a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/HMSResource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/HMSResource.java
@@ -44,6 +44,10 @@ public class HMSResource extends Resource {
@SerializedName(value = "properties")
private Map<String, String> properties;
+ public HMSResource() {
+ super();
+ }
+
public HMSResource(String name) {
super(name, ResourceType.HMS);
this.properties = Maps.newHashMap();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/HdfsResource.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/HdfsResource.java
index 8ebd66c7093..6d441707420 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/HdfsResource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/HdfsResource.java
@@ -54,6 +54,10 @@ public class HdfsResource extends Resource {
@SerializedName(value = "properties")
private Map<String, String> properties;
+ public HdfsResource() {
+ super();
+ }
+
public HdfsResource(String name) {
super(name, Resource.ResourceType.HDFS);
properties = Maps.newHashMap();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OdbcCatalogResource.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/OdbcCatalogResource.java
index 152db3a1769..dbe03ce4db0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OdbcCatalogResource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OdbcCatalogResource.java
@@ -65,7 +65,6 @@ public class OdbcCatalogResource extends Resource {
@SerializedName(value = "configs")
private Map<String, String> configs;
- // only for deep copy
public OdbcCatalogResource() {
super();
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Resource.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Resource.java
index 88d3786e136..6bb7a1b0043 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Resource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Resource.java
@@ -111,6 +111,9 @@ public abstract class Resource implements Writable, GsonPostProcessable {
lock.readLock().unlock();
}
+ // https://programmerr47.medium.com/gson-unsafe-problem-d1ff29d4696f
+ // Resource subclass also MUST define default ctor, otherwise when reloading object from json
+ // some not serialized field (i.e. `lock`) will be `null`.
public Resource() {
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/S3Resource.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/S3Resource.java
index 2013b4ff49c..5bcb5123c64 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/S3Resource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/S3Resource.java
@@ -70,10 +70,9 @@ public class S3Resource extends Resource {
@SerializedName(value = "properties")
private Map<String, String> properties;
- // for Gson fromJson
- // TODO(plat1ko): other Resource subclass also MUST define default ctor, otherwise when reloading object from json
- // some not serialized field (i.e. `lock`) will be `null`.
- public S3Resource() {}
+ public S3Resource() {
+ super();
+ }
public S3Resource(String name) {
super(name, ResourceType.S3);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/SparkResource.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/SparkResource.java
index 453a50ad115..704d8e512d7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/SparkResource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/SparkResource.java
@@ -117,6 +117,11 @@ public class SparkResource extends Resource {
@SerializedName(value = "envConfigs")
private Map<String, String> envConfigs;
+
+ public SparkResource() {
+ super();
+ }
+
public SparkResource(String name) {
this(name, Maps.newHashMap(), null, null, Maps.newHashMap(), Maps.newHashMap());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org