This is an automated email from the ASF dual-hosted git repository.
haonan 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 289cd82b Fix aligned TimeValuePair npe (#173)
289cd82b is described below
commit 289cd82bac0167f3b4517434c180f2507f6e0e4a
Author: shuwenwei <[email protected]>
AuthorDate: Thu Jul 11 11:15:19 2024 +0800
Fix aligned TimeValuePair npe (#173)
---
.../java/org/apache/tsfile/utils/TsPrimitiveType.java | 6 ++++++
.../org/apache/tsfile/utils/TsPrimitiveTypeTest.java | 16 ++++++++++++++++
2 files changed, 22 insertions(+)
diff --git
a/java/common/src/main/java/org/apache/tsfile/utils/TsPrimitiveType.java
b/java/common/src/main/java/org/apache/tsfile/utils/TsPrimitiveType.java
index 50a74436..226862ff 100644
--- a/java/common/src/main/java/org/apache/tsfile/utils/TsPrimitiveType.java
+++ b/java/common/src/main/java/org/apache/tsfile/utils/TsPrimitiveType.java
@@ -691,6 +691,12 @@ public abstract class TsPrimitiveType implements
Serializable {
return false;
}
for (int i = 0; i < this.values.length; i++) {
+ if (values[i] == null && anotherTs.values[i] == null) {
+ continue;
+ }
+ if (values[i] == null || anotherTs.values[i] == null) {
+ return false;
+ }
if (!values[i].equals(anotherTs.values[i])) {
return false;
}
diff --git
a/java/tsfile/src/test/java/org/apache/tsfile/utils/TsPrimitiveTypeTest.java
b/java/tsfile/src/test/java/org/apache/tsfile/utils/TsPrimitiveTypeTest.java
index f554271b..d74847b3 100644
--- a/java/tsfile/src/test/java/org/apache/tsfile/utils/TsPrimitiveTypeTest.java
+++ b/java/tsfile/src/test/java/org/apache/tsfile/utils/TsPrimitiveTypeTest.java
@@ -20,6 +20,7 @@ package org.apache.tsfile.utils;
import org.apache.tsfile.common.conf.TSFileConfig;
import org.apache.tsfile.enums.TSDataType;
+import org.apache.tsfile.read.TimeValuePair;
import org.apache.tsfile.utils.TsPrimitiveType.TsBinary;
import org.apache.tsfile.utils.TsPrimitiveType.TsBoolean;
import org.apache.tsfile.utils.TsPrimitiveType.TsDouble;
@@ -59,4 +60,19 @@ public class TsPrimitiveTypeTest {
Assert.assertEquals(new TsBoolean(true), booleanValue);
Assert.assertTrue(booleanValue.getBoolean());
}
+
+ @Test
+ public void testCompareWithNullValue() {
+ TimeValuePair timeValuePair1 =
+ new TimeValuePair(
+ 1,
+ new TsPrimitiveType.TsVector(
+ new TsPrimitiveType[] {new TsBoolean(true), null, null, new
TsInt(1)}));
+ TimeValuePair timeValuePair2 =
+ new TimeValuePair(
+ 1,
+ new TsPrimitiveType.TsVector(
+ new TsPrimitiveType[] {new TsBoolean(true), null, new
TsInt(1), null}));
+ Assert.assertFalse(timeValuePair1.equals(timeValuePair2));
+ }
}