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

Caideyipi pushed a commit to branch ci-fix
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/ci-fix by this push:
     new 60c081594d8 Fix Test
60c081594d8 is described below

commit 60c081594d8ca92e1b7ce63a62d52f37c7cef1e2
Author: Caideyipi <[email protected]>
AuthorDate: Thu May 28 10:01:12 2026 +0800

    Fix Test
---
 .../org/apache/iotdb/db/utils/BitMapUtils.java     | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/BitMapUtils.java 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/BitMapUtils.java
index c6e1aecbd3d..9689154c8e7 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/BitMapUtils.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/BitMapUtils.java
@@ -34,8 +34,7 @@ public final class BitMapUtils {
 
     boolean hasMarkedBitMap = false;
     for (int i = 0; i < bitMaps.length; ++i) {
-      if (Objects.nonNull(bitMaps[i])
-          && bitMaps[i].isAllUnmarked(Math.min(rowCount, 
bitMaps[i].getSize()))) {
+      if (Objects.nonNull(bitMaps[i]) && isAllUnmarked(bitMaps[i], rowCount)) {
         bitMaps[i] = null;
       }
       if (Objects.nonNull(bitMaps[i])) {
@@ -44,4 +43,23 @@ public final class BitMapUtils {
     }
     return hasMarkedBitMap ? bitMaps : null;
   }
+
+  private static boolean isAllUnmarked(final BitMap bitMap, final int 
rowCount) {
+    final int checkedSize = Math.min(rowCount, bitMap.getSize());
+    if (checkedSize <= 0) {
+      return true;
+    }
+
+    final byte[] bytes = bitMap.getByteArray();
+    final int fullByteCount = checkedSize / Byte.SIZE;
+    for (int i = 0; i < fullByteCount; ++i) {
+      if (bytes[i] != 0) {
+        return false;
+      }
+    }
+
+    final int remainingBitCount = checkedSize % Byte.SIZE;
+    return remainingBitCount == 0
+        || (bytes[fullByteCount] & (0xFF << (Byte.SIZE - remainingBitCount))) 
== 0;
+  }
 }

Reply via email to