This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git

commit f0c6f7bb14c91408fd47794967e73dfff6324721
Author: Mingyu Chen <[email protected]>
AuthorDate: Sat Dec 10 18:46:08 2022 +0800

    [fix](fe-meta) NPE in DataProperty when upgrading to 1.2.x (#14976)
---
 .../src/main/java/org/apache/doris/catalog/DataProperty.java | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/DataProperty.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/DataProperty.java
index 0531d9d03a..50fcbf7e72 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/DataProperty.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/DataProperty.java
@@ -22,9 +22,11 @@ import org.apache.doris.common.FeMetaVersion;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
 import org.apache.doris.common.util.TimeUtils;
+import org.apache.doris.persist.gson.GsonPostProcessable;
 import org.apache.doris.persist.gson.GsonUtils;
 import org.apache.doris.thrift.TStorageMedium;
 
+import com.google.common.base.Strings;
 import com.google.gson.annotations.SerializedName;
 
 import java.io.DataInput;
@@ -32,7 +34,7 @@ import java.io.DataOutput;
 import java.io.IOException;
 import java.util.Objects;
 
-public class DataProperty implements Writable {
+public class DataProperty implements Writable, GsonPostProcessable {
     public static final DataProperty DEFAULT_DATA_PROPERTY = new DataProperty(
             "SSD".equalsIgnoreCase(Config.default_storage_medium) ? 
TStorageMedium.SSD : TStorageMedium.HDD
     );
@@ -126,7 +128,7 @@ public class DataProperty implements Writable {
 
         return this.storageMedium == other.storageMedium
                 && this.cooldownTimeMs == other.cooldownTimeMs
-                && this.storagePolicy.equals(other.storagePolicy);
+                && 
Strings.nullToEmpty(this.storagePolicy).equals(Strings.nullToEmpty(other.storagePolicy));
     }
 
     @Override
@@ -137,4 +139,10 @@ public class DataProperty implements Writable {
         sb.append("remote storage 
policy[").append(this.storagePolicy).append("]. ");
         return sb.toString();
     }
+
+    @Override
+    public void gsonPostProcess() throws IOException {
+        // storagePolicy is a newly added field, it may be null when replaying 
from old version.
+        this.storagePolicy = Strings.nullToEmpty(this.storagePolicy);
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to