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

Reply via email to