This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch dev/1.1
in repository https://gitbox.apache.org/repos/asf/tsfile.git
The following commit(s) were added to refs/heads/dev/1.1 by this push:
new eb931424 [To dev/1.1] Fixed the empty string ser/de bug & null
string[] array calculation bug
eb931424 is described below
commit eb93142487c2ff98ce2ab6dd6339f9d8811fa0ca
Author: Caideyipi <[email protected]>
AuthorDate: Mon Mar 24 11:13:22 2025 +0800
[To dev/1.1] 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 3a35d226..7c66e56d 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
@@ -273,14 +273,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 35e1985a..628f7e95 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);