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

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


The following commit(s) were added to refs/heads/develop by this push:
     new ee25c3fb Fixed the empty string ser/de bug & null string[] array 
calculation bug
ee25c3fb is described below

commit ee25c3fb62d043d852e8b0309c9144da80e380fb
Author: Caideyipi <[email protected]>
AuthorDate: Mon Mar 24 11:13:34 2025 +0800

    Fixed the empty string ser/de bug & null string[] array calculation bug
---
 .../java/org/apache/tsfile/utils/RamUsageEstimator.java  | 16 ++++++++++------
 .../java/org/apache/tsfile/utils/ReadWriteIOUtils.java   |  4 +++-
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git 
a/java/common/src/main/java/org/apache/tsfile/utils/RamUsageEstimator.java 
b/java/common/src/main/java/org/apache/tsfile/utils/RamUsageEstimator.java
index d357a42e..2f1cf3db 100644
--- a/java/common/src/main/java/org/apache/tsfile/utils/RamUsageEstimator.java
+++ b/java/common/src/main/java/org/apache/tsfile/utils/RamUsageEstimator.java
@@ -285,14 +285,18 @@ public final class RamUsageEstimator {
 
   /** Returns the size in bytes of the String[] object. */
   public static long sizeOf(String[] arr) {
-    long size = shallowSizeOf(arr);
-    for (String s : arr) {
-      if (s == null) {
-        continue;
+    if (arr == null) {
+      return 0;
+    } else {
+      long size = shallowSizeOf(arr);
+      for (String s : arr) {
+        if (s == null) {
+          continue;
+        }
+        size += sizeOf(s);
       }
-      size += sizeOf(s);
+      return size;
     }
-    return size;
   }
 
   /** Recurse only into immediate descendants. */
diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/utils/ReadWriteIOUtils.java 
b/java/tsfile/src/main/java/org/apache/tsfile/utils/ReadWriteIOUtils.java
index 056552d5..6e38e513 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/utils/ReadWriteIOUtils.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/utils/ReadWriteIOUtils.java
@@ -609,8 +609,10 @@ public class ReadWriteIOUtils {
   /** Read string from inputStream. */
   public static String readString(InputStream inputStream) throws IOException {
     int strLength = readInt(inputStream);
-    if (strLength <= 0) {
+    if (strLength < 0) {
       return null;
+    } else if (strLength == 0) {
+      return "";
     }
     byte[] bytes = new byte[strLength];
     int readLen = inputStream.read(bytes, 0, strLength);

Reply via email to