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);