This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch rel/0.13
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/0.13 by this push:
new fab54e7b5c fix npe in SizeTieredCompaction MultiDeviceIterator(#5571)
fab54e7b5c is described below
commit fab54e7b5c3165ae9cdc527c379191823f08acdd
Author: Liu Xuxin <[email protected]>
AuthorDate: Sun Apr 17 23:18:25 2022 -0700
fix npe in SizeTieredCompaction MultiDeviceIterator(#5571)
---
.../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 403b714d35..939f172d54 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();
if (logger.isInfoEnabled()) {
logger.info(
"IoTDB exits. Jvm memory usage: {}",