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