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

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

commit 7b4a1bbc2d77cc4ad28f2e7bd2c4a93112cafa17
Author: HTHou <[email protected]>
AuthorDate: Tue May 21 09:55:44 2024 +0800

    fix sonar bug step 1
---
 .../java/org/apache/iotdb/tool/ImportData.java     |  6 ++----
 .../org/apache/iotdb/tool/IoTDBDataBackTool.java   | 19 +++++++++---------
 .../org/apache/iotdb/session/NodesSupplier.java    |  2 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 23 ++++++++++++++++------
 .../protocol/thrift/IoTDBDataNodeReceiver.java     |  5 +++++
 .../pbtree/schemafile/pagemgr/PageManager.java     |  8 ++++----
 .../apache/iotdb/commons/conf/CommonConfig.java    |  6 +++---
 7 files changed, 41 insertions(+), 28 deletions(-)

diff --git 
a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ImportData.java 
b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ImportData.java
index 1fba1f67020..0943adc9225 100644
--- a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ImportData.java
+++ b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ImportData.java
@@ -40,7 +40,6 @@ import org.apache.commons.cli.Options;
 import org.apache.commons.csv.CSVFormat;
 import org.apache.commons.csv.CSVParser;
 import org.apache.commons.csv.CSVRecord;
-import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.thrift.annotation.Nullable;
 import org.apache.tsfile.common.constant.TsFileConstant;
@@ -488,12 +487,11 @@ public class ImportData extends AbstractDataTool {
       } catch (IOException e) {
         ioTPrinter.println("Cannot dump fail result because: " + 
e.getMessage());
       } finally {
-        if (ObjectUtils.isNotEmpty(writer)) {
+        if (writer != null) {
           try {
             writer.flush();
             writer.close();
-          } catch (IOException e) {
-            ;
+          } catch (IOException ignore) {
           }
         }
       }
diff --git 
a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/IoTDBDataBackTool.java 
b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/IoTDBDataBackTool.java
index c9d9df6aae6..cc8ca668082 100644
--- 
a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/IoTDBDataBackTool.java
+++ 
b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/IoTDBDataBackTool.java
@@ -173,7 +173,7 @@ public class IoTDBDataBackTool {
     return isVaild;
   }
 
-  public static void main(String[] args) {
+  public static void main(String[] args) throws IOException {
     System.setProperty("IOTDB_HOME", System.getenv("IOTDB_HOME"));
     argsParse(args);
     File sourceDir = new File(sourcePath);
@@ -1041,15 +1041,14 @@ public class IoTDBDataBackTool {
   public static void propertiesFileUpdate(String filePath, String key, String 
newValue) {
     try {
       newValue = formatPathForOS(newValue);
-      FileInputStream fileInputStream = new FileInputStream(filePath);
-      BufferedReader reader = new BufferedReader(new 
InputStreamReader(fileInputStream));
-
       List<String> lines = new ArrayList<>();
-      String line;
-      while ((line = reader.readLine()) != null) {
-        lines.add(line);
+      try (FileInputStream fileInputStream = new FileInputStream(filePath);
+          BufferedReader reader = new BufferedReader(new 
InputStreamReader(fileInputStream))) {
+        String line;
+        while ((line = reader.readLine()) != null) {
+          lines.add(line);
+        }
       }
-      reader.close();
       boolean keyFound = false;
 
       for (int i = 0; i < lines.size(); i++) {
@@ -1121,11 +1120,11 @@ public class IoTDBDataBackTool {
     return 0;
   }
 
-  public static void delFile(String filename) {
+  public static void delFile(String filename) throws IOException {
     filename = sourcePath + File.separatorChar + "logs" + File.separatorChar + 
filename;
     File file = new File(filename);
     if (file.exists()) {
-      file.delete();
+      Files.delete(file.toPath());
     }
   }
 
diff --git 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/NodesSupplier.java
 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/NodesSupplier.java
index 37532023ce6..28bc8a829f9 100644
--- 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/NodesSupplier.java
+++ 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/NodesSupplier.java
@@ -58,7 +58,7 @@ public class NodesSupplier implements INodeSupplier, Runnable 
{
 
   // availableNodes won't be updated frequently, so we use 
CopyOnWriteArrayList which is thread-safe
   // and is optimized for scenarios of reading more and writing less
-  private volatile List<TEndPoint> availableNodes = new 
CopyOnWriteArrayList<>();
+  private List<TEndPoint> availableNodes = new CopyOnWriteArrayList<>();
 
   private final boolean useSSL;
   private final String trustStore;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 5e481330d09..e68aeccf5e5 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -1306,6 +1306,15 @@ public class IoTDBConfig {
   void reloadDataDirs(String[][] tierDataDirs) throws 
LoadConfigurationException {
     // format data directories
     formulateDataDirs(tierDataDirs);
+    // make sure the tiers number not reduced
+    if (this.tierDataDirs.length > tierDataDirs.length) {
+      String msg =
+          String.format(
+              "The tiers number is reduced from %d from %d please add it 
back.",
+              this.tierDataDirs.length, tierDataDirs.length);
+      logger.error(msg);
+      throw new LoadConfigurationException(msg);
+    }
     // make sure old data directories not removed
     for (int i = 0; i < this.tierDataDirs.length; ++i) {
       HashSet<String> newDirs = new HashSet<>(Arrays.asList(tierDataDirs[i]));
@@ -1399,12 +1408,14 @@ public class IoTDBConfig {
   }
 
   public void setTierDataDirs(String[][] tierDataDirs) {
-    formulateDataDirs(tierDataDirs);
-    this.tierDataDirs = tierDataDirs;
-    // TODO(szywilliam): rewrite the logic here when ratis supports complete 
snapshot semantic
-    setRatisDataRegionSnapshotDir(
-        tierDataDirs[0][0] + File.separator + 
IoTDBConstant.SNAPSHOT_FOLDER_NAME);
-    setLoadTsFileDir(tierDataDirs[0][0] + File.separator + 
IoTDBConstant.LOAD_TSFILE_FOLDER_NAME);
+    if (tierDataDirs.length > 0 && tierDataDirs[0].length > 0) {
+      formulateDataDirs(tierDataDirs);
+      this.tierDataDirs = tierDataDirs;
+      // TODO(szywilliam): rewrite the logic here when ratis supports complete 
snapshot semantic
+      setRatisDataRegionSnapshotDir(
+          tierDataDirs[0][0] + File.separator + 
IoTDBConstant.SNAPSHOT_FOLDER_NAME);
+      setLoadTsFileDir(tierDataDirs[0][0] + File.separator + 
IoTDBConstant.LOAD_TSFILE_FOLDER_NAME);
+    }
   }
 
   public String getRpcAddress() {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java
index dfd8be444b6..9c14c074178 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java
@@ -401,6 +401,11 @@ public class IoTDBDataNodeReceiver extends 
IoTDBFileReceiver {
   }
 
   private TSStatus executeStatementAndClassifyExceptions(final Statement 
statement) {
+    if (statement == null) {
+      return RpcUtils.getStatus(
+          TSStatusCode.PIPE_TRANSFER_EXECUTE_STATEMENT_ERROR, "Execute null 
statement.");
+    }
+
     try {
       final TSStatus result = executeStatement(statement);
       if (result.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/schemafile/pagemgr/PageManager.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/schemafile/pagemgr/PageManager.java
index 06d8c279844..f5aa032c653 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/schemafile/pagemgr/PageManager.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/schemafile/pagemgr/PageManager.java
@@ -710,21 +710,21 @@ public abstract class PageManager implements IPageManager 
{
     if (batchSize < SchemaFileConfig.SEG_SIZE_METRIC[0]) {
       return reEstimateSegSize(expSize);
     }
-    int base_tier = 0;
+    int baseTier = 0;
     for (int i = 0; i < SchemaFileConfig.SEG_SIZE_LST.length; i++) {
       if (SchemaFileConfig.SEG_SIZE_LST[i] >= expSize) {
-        base_tier = i;
+        baseTier = i;
         break;
       }
     }
     int tier = SchemaFileConfig.SEG_SIZE_LST.length - 1;
-    while (tier >= base_tier) {
+    while (tier >= baseTier) {
       if (batchSize > SchemaFileConfig.SEG_SIZE_METRIC[tier]) {
         return SchemaFileConfig.SEG_SIZE_LST[tier];
       }
       tier--;
     }
-    return SchemaFileConfig.SEG_SIZE_LST[base_tier];
+    return SchemaFileConfig.SEG_SIZE_LST[baseTier];
   }
 
   private static short reEstimateSegSize(int expSize) throws MetadataException 
{
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
index 8cc7ff7eefa..6563c1fde4d 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
@@ -231,9 +231,9 @@ public class CommonConfig {
   private long pipeListeningQueueTransferSnapshotThreshold = 1000;
   private int pipeSnapshotExecutionMaxBatchSize = 1000;
 
-  private long twoStageAggregateMaxCombinerLiveTimeInMs = 8 * 60 * 1000; // 8 
minutes
-  private long twoStageAggregateDataRegionInfoCacheTimeInMs = 3 * 60 * 1000; 
// 3 minutes
-  private long twoStageAggregateSenderEndPointsCacheInMs = 3 * 60 * 1000; // 3 
minutes
+  private long twoStageAggregateMaxCombinerLiveTimeInMs = (long) 8 * 60 * 
1000; // 8 minutes
+  private long twoStageAggregateDataRegionInfoCacheTimeInMs = (long) 3 * 60 * 
1000; // 3 minutes
+  private long twoStageAggregateSenderEndPointsCacheInMs = (long) 3 * 60 * 
1000; // 3 minutes
 
   private int subscriptionSubtaskExecutorMaxThreadNum =
       Math.min(5, Math.max(1, Runtime.getRuntime().availableProcessors() / 2));

Reply via email to