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]
