You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2022/04/15 13:04:13 UTC

[iotdb] branch master updated: [IOTDB-2922] Fix NPE when compacting with files that contains zero device (#5553)

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

qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new a356eeabc9 [IOTDB-2922] Fix NPE when compacting with files that contains zero device (#5553)
a356eeabc9 is described below

commit a356eeabc9b1ed2c445d977a7b23e04dc151f3ed
Author: Liu Xuxin <37...@users.noreply.github.com>
AuthorDate: Fri Apr 15 06:04:08 2022 -0700

    [IOTDB-2922] Fix NPE when compacting with files that contains zero device (#5553)
---
 .../db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java  | 5 ++++-
 .../src/main/java/org/apache/iotdb/db/service/IoTDBShutdownHook.java | 2 ++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java
index cb76dfdcdc..69e9ab0e10 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java
@@ -94,7 +94,10 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
   public boolean hasNextDevice() {
     boolean hasNext = false;
     for (TsFileDeviceIterator iterator : deviceIteratorMap.values()) {
-      hasNext = hasNext || iterator.hasNext() || !iterator.current().equals(currentDevice);
+      hasNext =
+          hasNext
+              || iterator.hasNext()
+              || (iterator.current() != null && !iterator.current().equals(currentDevice));
     }
     return hasNext;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/service/IoTDBShutdownHook.java b/server/src/main/java/org/apache/iotdb/db/service/IoTDBShutdownHook.java
index 270c3d1935..a8900d3eb2 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/IoTDBShutdownHook.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/IoTDBShutdownHook.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.service;
 
+import org.apache.iotdb.db.engine.compaction.CompactionTaskManager;
 import org.apache.iotdb.db.utils.MemUtils;
 
 import org.slf4j.Logger;
@@ -29,6 +30,7 @@ public class IoTDBShutdownHook extends Thread {
 
   @Override
   public void run() {
+    CompactionTaskManager.getInstance().stop();
     // close rocksdb if possible to avoid lose data
     IoTDB.configManager.clear();
     if (logger.isInfoEnabled()) {