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

jiangtian pushed a commit to branch fix_empty_bloom_filter_deserialization
in repository https://gitbox.apache.org/repos/asf/tsfile.git

commit a68a7d4c00a480b6e98ad8e3ba77579fefd473f9
Author: Tian Jiang <[email protected]>
AuthorDate: Fri Jan 3 18:44:34 2025 +0800

    Fix the deserialization of empty bloom filters
---
 .../main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java   | 6 +++++-
 .../java/org/apache/tsfile/file/metadata/TsFileMetadataTest.java    | 4 ++++
 .../src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java  | 6 +++++-
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java
index 379a9036..16f1da5d 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java
@@ -221,7 +221,7 @@ public class TsFileMetadata {
     if (bloomFilter != null) {
       byteLen += serializeBloomFilter(outputStream, bloomFilter);
     } else {
-      byteLen += ReadWriteIOUtils.write(0, outputStream);
+      byteLen += ReadWriteForEncodingUtils.writeUnsignedVarInt(0, 
outputStream);
     }
 
     byteLen +=
@@ -284,4 +284,8 @@ public class TsFileMetadata {
   public Map<String, TableSchema> getTableSchemaMap() {
     return tableSchemaMap;
   }
+
+  public Map<String, String> getTsFileProperties() {
+    return tsFileProperties;
+  }
 }
diff --git 
a/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/TsFileMetadataTest.java
 
b/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/TsFileMetadataTest.java
index cfac37e8..03e22e27 100644
--- 
a/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/TsFileMetadataTest.java
+++ 
b/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/TsFileMetadataTest.java
@@ -53,6 +53,10 @@ public class TsFileMetadataTest {
   @Test
   public void testWriteFileMetaData() {
     TsFileMetadata tsfMetaData = TestHelper.createSimpleFileMetaData();
+    tsfMetaData.addProperty("encryptLevel", "0");
+    tsfMetaData.addProperty("encryptType", 
"org.apache.tsfile.encrypt.UNENCRYPTED");
+    tsfMetaData.addProperty("encryptKey", "");
+    tsfMetaData.addProperty("d", "1");
     serialized(tsfMetaData);
     TsFileMetadata readMetaData = deSerialized();
     Assert.assertTrue(Utils.isFileMetaDataEqual(tsfMetaData, readMetaData));
diff --git 
a/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java 
b/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java
index 91c2cbf2..dc37e00f 100644
--- a/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java
+++ b/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java
@@ -25,6 +25,8 @@ import 
org.apache.tsfile.file.metadata.statistics.BooleanStatistics;
 import org.apache.tsfile.file.metadata.statistics.IntegerStatistics;
 import org.apache.tsfile.file.metadata.statistics.Statistics;
 
+import java.util.Objects;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
@@ -58,7 +60,9 @@ public class Utils {
             metadata1.getTableMetadataIndexNode(TestHelper.TEST_TABLE_NAME);
         MetadataIndexNode metaDataIndex2 =
             metadata2.getTableMetadataIndexNode(TestHelper.TEST_TABLE_NAME);
-        return metaDataIndex1.getChildren().size() == 
metaDataIndex2.getChildren().size();
+
+        return Objects.equals(metadata1.getTsFileProperties(), 
metadata2.getTsFileProperties())
+            && metaDataIndex1.getChildren().size() == 
metaDataIndex2.getChildren().size();
       }
     }
     return false;

Reply via email to