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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
