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

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

commit f78e80eb95ff29dc3b5d045731ef6f4aa92b1eb1
Author: Jinrui.Zhang <[email protected]>
AuthorDate: Thu Jun 29 12:32:13 2023 +0800

    fix sonar bugs in wal module
---
 .../apache/iotdb/db/storageengine/dataregion/wal/WALManager.java   | 1 +
 .../dataregion/wal/allocation/FirstCreateStrategy.java             | 4 +++-
 .../storageengine/dataregion/wal/recover/WALNodeRecoverTask.java   | 7 ++++++-
 .../db/storageengine/dataregion/wal/recover/WALRecoverManager.java | 1 +
 .../db/storageengine/dataregion/wal/utils/WALEntryHandler.java     | 1 +
 5 files changed, 12 insertions(+), 2 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/WALManager.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/WALManager.java
index 997c9328a6c..26d87dffa5b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/WALManager.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/WALManager.java
@@ -197,6 +197,7 @@ public class WALManager implements IService {
           Thread.sleep(50);
         } catch (InterruptedException e) {
           logger.error("Interrupted when waiting for all write-ahead logs 
flushed.");
+          Thread.currentThread().interrupt();
         }
       }
     }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/FirstCreateStrategy.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/FirstCreateStrategy.java
index 67b1c6f4f0c..30e67365a3d 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/FirstCreateStrategy.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/FirstCreateStrategy.java
@@ -73,7 +73,9 @@ public class FirstCreateStrategy extends 
AbstractNodeAllocationStrategy {
       if (identifier2Nodes.containsKey(applicantUniqueId)) {
         return;
       }
-
+      // Although walNode is defined as a local variable, it is added into a 
global var
+      // identifier2Nodes later. So we cannot close it here.
+      @SuppressWarnings("squid:S2095")
       IWALNode walNode =
           createWALNode(applicantUniqueId, logDirectory, startFileVersion, 
startSearchIndex);
       if (walNode instanceof WALNode) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALNodeRecoverTask.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALNodeRecoverTask.java
index 49a2be2ab06..0f1e0d6a5b4 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALNodeRecoverTask.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALNodeRecoverTask.java
@@ -42,6 +42,7 @@ import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
@@ -103,7 +104,11 @@ public class WALNodeRecoverTask implements Runnable {
       // delete checkpoint info to avoid repeated recover
       File[] checkpointFiles = 
CheckpointFileUtils.listAllCheckpointFiles(logDirectory);
       for (File checkpointFile : checkpointFiles) {
-        checkpointFile.delete();
+        try {
+          Files.delete(checkpointFile.toPath());
+        } catch (IOException e) {
+          logger.error("error when delete checkpoint file. {}", 
checkpointFile, e);
+        }
       }
       // recover version id and search index
       long[] indexInfo = recoverLastFile();
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALRecoverManager.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALRecoverManager.java
index 7375d5737ad..d306e69cb42 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALRecoverManager.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALRecoverManager.java
@@ -54,6 +54,7 @@ public class WALRecoverManager {
   // true when the recover procedure has started
   private volatile boolean hasStarted = false;
   // start recovery after all data regions have submitted unsealed zero-level 
TsFiles
+  @SuppressWarnings("squid:S3077")
   private volatile CountDownLatch allDataRegionScannedLatch;
   // threads to recover wal nodes
   private ExecutorService recoverThreadPool;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/utils/WALEntryHandler.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/utils/WALEntryHandler.java
index 26e6dd17d45..27b38844f33 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/utils/WALEntryHandler.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/utils/WALEntryHandler.java
@@ -37,6 +37,7 @@ public class WALEntryHandler {
 
   private long memTableId = -1;
   // cached value, null after this value is flushed to wal successfully
+  @SuppressWarnings("squid:S3077")
   private volatile WALEntryValue value;
   // wal entry's position in the wal, valid after the value is flushed to wal 
successfully
   // it's safe to use volatile here to make this reference thread-safe.

Reply via email to