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

jackietien 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 19de5b10f38 Fix some sonar smell
19de5b10f38 is described below

commit 19de5b10f38bf6ad96069e14af6bba595b35b93c
Author: Jackie Tien <[email protected]>
AuthorDate: Wed Sep 24 17:21:52 2025 +0800

    Fix some sonar smell
---
 .../org/apache/iotdb/tool/backup/IoTDBDataBackTool.java  |  4 ++--
 .../main/java/org/apache/iotdb/jdbc/IoTDBConnection.java | 14 ++++++--------
 .../org/apache/iotdb/jdbc/IoTDBPreparedStatement.java    |  2 --
 .../src/main/java/org/apache/iotdb/session/Session.java  |  2 +-
 .../apache/iotdb/confignode/conf/ConfigNodeConfig.java   |  7 ++++++-
 .../manager/load/balancer/PartitionBalancer.java         |  4 ++--
 .../region/GreedyCopySetRegionGroupAllocator.java        |  4 ++--
 .../load/balancer/region/GreedyRegionGroupAllocator.java |  4 ++--
 .../confignode/persistence/schema/TemplateTable.java     |  8 ++------
 .../main/java/org/apache/iotdb/db/conf/IoTDBConfig.java  |  2 +-
 .../schemaregion/impl/SchemaRegionMemoryImpl.java        |  3 +--
 .../schemaregion/impl/SchemaRegionPBTreeImpl.java        |  5 ++---
 .../db/schemaengine/template/ClusterTemplateManager.java |  2 +-
 .../compaction/tool/SingleSequenceFileTask.java          | 11 +++++++----
 .../compaction/tool/TimePartitionProcessTask.java        |  9 ++++++---
 .../disk/strategy/RandomOnDiskUsableSpaceStrategy.java   |  4 ++--
 .../java/org/apache/iotdb/db/tools/TsFileSketchTool.java | 16 ++++++++++------
 .../iotdb/db/tools/settle/TsFileAndModSettleTool.java    |  5 ++---
 .../apache/iotdb/db/tools/utils/TsFileStatisticScan.java |  6 +++++-
 .../udf/builtin/UDTFEqualSizeBucketRandomSample.java     |  6 +++---
 20 files changed, 63 insertions(+), 55 deletions(-)

diff --git 
a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/backup/IoTDBDataBackTool.java
 
b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/backup/IoTDBDataBackTool.java
index 62f27acbf62..975dfdd7b24 100644
--- 
a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/backup/IoTDBDataBackTool.java
+++ 
b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/backup/IoTDBDataBackTool.java
@@ -897,7 +897,7 @@ public class IoTDBDataBackTool {
         LOGGER.info("Start to read config file {}", url);
         properties.load(new InputStreamReader(inputStream, 
StandardCharsets.UTF_8));
       } catch (Exception e) {
-        e.printStackTrace();
+        LOGGER.error("Read config file {} error", url, e);
       }
     }
     return properties;
@@ -1079,7 +1079,7 @@ public class IoTDBDataBackTool {
       fileOutputStream.close();
 
     } catch (IOException e) {
-      e.printStackTrace();
+      LOGGER.error("properties file update error.", e);
     }
   }
 
diff --git 
a/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBConnection.java 
b/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBConnection.java
index 89c5823f658..8e4ecafac20 100644
--- a/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBConnection.java
+++ b/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBConnection.java
@@ -280,11 +280,10 @@ public class IoTDBConnection implements Connection {
         }
       }
 
-      Statement stmt = this.createStatement();
-      String sql = "USE " + arg0;
-      boolean rs;
+      PreparedStatement stmt = this.prepareStatement("USE ?");
+      stmt.setString(1, arg0);
       try {
-        rs = stmt.execute(sql);
+        stmt.execute();
       } catch (SQLException e) {
         stmt.close();
         logger.error("Use database error: {}", e.getMessage());
@@ -352,11 +351,10 @@ public class IoTDBConnection implements Connection {
         }
       }
 
-      Statement stmt = this.createStatement();
-      String sql = "USE " + arg0;
-      boolean rs;
+      PreparedStatement stmt = this.prepareStatement("USE ?");
+      stmt.setString(1, arg0);
       try {
-        rs = stmt.execute(sql);
+        stmt.execute();
       } catch (SQLException e) {
         stmt.close();
         logger.error("Use database error: {}", e.getMessage());
diff --git 
a/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBPreparedStatement.java
 
b/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBPreparedStatement.java
index 389d2867c41..bb6a7641ab5 100644
--- 
a/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBPreparedStatement.java
+++ 
b/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBPreparedStatement.java
@@ -456,8 +456,6 @@ public class IoTDBPreparedStatement extends IoTDBStatement 
implements PreparedSt
               } else if ("false".equalsIgnoreCase((String) parameterObj)
                   || "N".equalsIgnoreCase((String) parameterObj)) {
                 setBoolean(parameterIndex, false);
-              } else if (((String) parameterObj).matches("-?\\d+\\.?\\d*")) {
-                setBoolean(parameterIndex, !((String) 
parameterObj).matches("-?[0]+[.]*[0]*"));
               } else {
                 throw new SQLException(
                     "No conversion from " + parameterObj + " to Types.BOOLEAN 
possible.");
diff --git 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
index 20016f096ce..8844f36c247 100644
--- a/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
+++ b/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
@@ -3227,7 +3227,7 @@ public class Session implements ISession {
     request.addToSizeList(tablet.getRowSize());
   }
 
-  // sample some records and judge weather need to add too many null values to 
convert to tablet.
+  // sample some records and judge whether need to add too many null values to 
convert to tablet.
   private boolean judgeConvertOfOneDevice(List<List<String>> measurementsList) 
{
     int size = measurementsList.size();
     int sampleNum = (int) (size * SAMPLE_PROPORTION);
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
index 57e619a9baa..24f1ec4bbf8 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
@@ -33,12 +33,17 @@ import 
org.apache.iotdb.confignode.manager.partition.RegionGroupExtensionPolicy;
 import org.apache.iotdb.consensus.ConsensusFactory;
 import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.io.File;
 import java.lang.reflect.Field;
 import java.util.Arrays;
 
 public class ConfigNodeConfig {
 
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(ConfigNodeConfig.class);
+
   /** ClusterName, the default value "defaultCluster" will be changed after 
join cluster. */
   private volatile String clusterName = "defaultCluster";
 
@@ -1185,7 +1190,7 @@ public class ConfigNodeConfig {
             .append(configContent)
             .append(";");
       } catch (Exception e) {
-        e.printStackTrace();
+        LOGGER.warn("Failed to get field {}", configField, e);
       }
     }
     return configMessage.toString();
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/PartitionBalancer.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/PartitionBalancer.java
index 7850cbadc49..f76b54fec30 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/PartitionBalancer.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/PartitionBalancer.java
@@ -40,12 +40,12 @@ import org.apache.tsfile.utils.Pair;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Random;
 import java.util.TreeMap;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -274,7 +274,7 @@ public class PartitionBalancer {
       List<TTimePartitionSlot> timePartitionSlots,
       BalanceTreeMap<TConsensusGroupId, Integer> 
availableDataRegionGroupCounter,
       SeriesPartitionTable seriesPartitionTable) {
-    final Random random = new Random();
+    final SecureRandom random = new SecureRandom();
     List<TConsensusGroupId> availableDataRegionGroups =
         new ArrayList<>(availableDataRegionGroupCounter.keySet());
     for (TTimePartitionSlot timePartitionSlot : timePartitionSlots) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/region/GreedyCopySetRegionGroupAllocator.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/region/GreedyCopySetRegionGroupAllocator.java
index ae5f1c3eb44..d185fcfbe7a 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/region/GreedyCopySetRegionGroupAllocator.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/region/GreedyCopySetRegionGroupAllocator.java
@@ -24,6 +24,7 @@ import 
org.apache.iotdb.common.rpc.thrift.TDataNodeConfiguration;
 import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
 import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
 
+import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -31,7 +32,6 @@ import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Random;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -40,7 +40,7 @@ import static java.util.Map.Entry.comparingByValue;
 /** Allocate Region through Greedy and CopySet Algorithm. */
 public class GreedyCopySetRegionGroupAllocator implements 
IRegionGroupAllocator {
 
-  private static final Random RANDOM = new Random();
+  private static final SecureRandom RANDOM = new SecureRandom();
   private static final int GCR_MAX_OPTIMAL_PLAN_NUM = 10;
 
   private int replicationFactor;
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/region/GreedyRegionGroupAllocator.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/region/GreedyRegionGroupAllocator.java
index 31f33143ede..0b34300a12c 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/region/GreedyRegionGroupAllocator.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/region/GreedyRegionGroupAllocator.java
@@ -24,17 +24,17 @@ import 
org.apache.iotdb.common.rpc.thrift.TDataNodeConfiguration;
 import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
 import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
 
+import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Random;
 import java.util.stream.Collectors;
 
 /** Allocate Region Greedily */
 public class GreedyRegionGroupAllocator implements IRegionGroupAllocator {
 
-  public static final Random RANDOM = new Random();
+  public static final SecureRandom RANDOM = new SecureRandom();
 
   public GreedyRegionGroupAllocator() {
     // Empty constructor
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/TemplateTable.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/TemplateTable.java
index 6bb06d99db8..734c858e8fe 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/TemplateTable.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/TemplateTable.java
@@ -185,12 +185,8 @@ public class TemplateTable {
     }
   }
 
-  private void serializeTemplate(Template template, OutputStream outputStream) 
{
-    try {
-      template.serialize(outputStream);
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
+  private void serializeTemplate(Template template, OutputStream outputStream) 
throws IOException {
+    template.serialize(outputStream);
   }
 
   private void deserialize(InputStream inputStream) throws IOException {
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 36e1f6a011f..4f32529451d 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
@@ -3444,7 +3444,7 @@ public class IoTDBConfig {
             .append(configContent)
             .append(";");
       } catch (Exception e) {
-        e.printStackTrace();
+        logger.warn("Failed to get field {}", configField, e);
       }
     }
     return configMessage.toString();
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionMemoryImpl.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionMemoryImpl.java
index 3f49dfec93d..fbb407d3338 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionMemoryImpl.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionMemoryImpl.java
@@ -400,8 +400,7 @@ public class SchemaRegionMemoryImpl implements 
ISchemaRegion {
             databaseFullPath);
         return idx;
       } catch (final Exception e) {
-        e.printStackTrace();
-        throw new IOException("Failed to parse " + databaseFullPath + " 
mlog.bin for err:" + e);
+        throw new IOException("Failed to parse " + databaseFullPath + " 
mlog.bin", e);
       }
     } else {
       return 0;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionPBTreeImpl.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionPBTreeImpl.java
index 6b8000ecc59..0e180b2029b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionPBTreeImpl.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionPBTreeImpl.java
@@ -406,8 +406,7 @@ public class SchemaRegionPBTreeImpl implements 
ISchemaRegion {
             System.currentTimeMillis() - time,
             storageGroupFullPath);
       } catch (Exception e) {
-        e.printStackTrace();
-        throw new IOException("Failed to parse " + storageGroupFullPath + " 
mlog.bin for err:" + e);
+        throw new IOException("Failed to parse " + storageGroupFullPath + " 
mlog.bin", e);
       }
     }
   }
@@ -424,7 +423,7 @@ public class SchemaRegionPBTreeImpl implements 
ISchemaRegion {
     try {
       mLogReader.skip(offset);
     } catch (IOException e) {
-      e.printStackTrace();
+      logger.error("Failed to skip {} from {}", offset, schemaRegionDirPath, 
e);
     }
     while (mLogReader.hasNext()) {
       plan = mLogReader.next();
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/template/ClusterTemplateManager.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/template/ClusterTemplateManager.java
index 8294bc708f7..ac89c86b819 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/template/ClusterTemplateManager.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/template/ClusterTemplateManager.java
@@ -256,7 +256,7 @@ public class ClusterTemplateManager implements 
ITemplateManager {
                     try {
                       listPath.add(new PartialPath(item));
                     } catch (IllegalPathException e) {
-                      e.printStackTrace();
+                      LOGGER.error("illegal path {}", item);
                     }
                   });
         }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/SingleSequenceFileTask.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/SingleSequenceFileTask.java
index 550cca82272..dd57c1b1c8c 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/SingleSequenceFileTask.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/SingleSequenceFileTask.java
@@ -21,6 +21,8 @@ package 
org.apache.iotdb.db.storageengine.dataregion.compaction.tool;
 
 import org.apache.tsfile.file.metadata.ChunkMetadata;
 import org.apache.tsfile.file.metadata.IDeviceID;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
@@ -29,8 +31,9 @@ import java.util.List;
 import java.util.concurrent.Callable;
 
 public class SingleSequenceFileTask implements 
Callable<SequenceFileTaskSummary> {
-  private UnseqSpaceStatistics unseqSpaceStatistics;
-  private String seqFile;
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(SingleSequenceFileTask.class);
+  private final UnseqSpaceStatistics unseqSpaceStatistics;
+  private final String seqFile;
 
   public SingleSequenceFileTask(UnseqSpaceStatistics unseqSpaceStatistics, 
String seqFile) {
     this.unseqSpaceStatistics = unseqSpaceStatistics;
@@ -94,10 +97,10 @@ public class SingleSequenceFileTask implements 
Callable<SequenceFileTaskSummary>
       summary.totalChunkGroups = chunkGroupStatisticsList.size();
     } catch (IOException e) {
       if (e instanceof NoSuchFileException) {
-        System.out.println(seqFile + " is not exist");
+        LOGGER.warn("{} doesn't exist.", seqFile);
         return new SequenceFileTaskSummary();
       }
-      e.printStackTrace();
+      LOGGER.error("check {} failed.", seqFile, e);
       return new SequenceFileTaskSummary();
     }
     return summary;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/TimePartitionProcessTask.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/TimePartitionProcessTask.java
index cd71d1b7dac..f745add3aa5 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/TimePartitionProcessTask.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/TimePartitionProcessTask.java
@@ -21,6 +21,8 @@ package 
org.apache.iotdb.db.storageengine.dataregion.compaction.tool;
 
 import org.apache.tsfile.file.metadata.ChunkMetadata;
 import org.apache.tsfile.utils.Pair;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
@@ -30,6 +32,7 @@ import java.util.List;
 import java.util.concurrent.Future;
 
 public class TimePartitionProcessTask {
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(TimePartitionProcessTask.class);
   private final String timePartition;
   private final Pair<List<String>, List<String>> timePartitionFiles;
   private long sequenceSpaceCost = 0;
@@ -107,10 +110,10 @@ public class TimePartitionProcessTask {
         }
       } catch (IOException e) {
         if (e instanceof NoSuchFileException) {
-          System.out.println(((NoSuchFileException) e).getFile() + " is not 
exist");
+          LOGGER.warn("{} doesn't exist.", ((NoSuchFileException) 
e).getFile());
           continue;
         }
-        e.printStackTrace();
+        LOGGER.error("failed to deal with {}", unseqFile, e);
       }
     }
     unsequenceSpaceCost += (System.currentTimeMillis() - startTime);
@@ -136,7 +139,7 @@ public class TimePartitionProcessTask {
       } catch (InterruptedException e) {
         throw e;
       } catch (Exception e) {
-        e.printStackTrace();
+        LOGGER.error("error occurred", e);
       }
     }
     overlapStatistic.mergeUnSeqSpaceStatistics(unseqSpaceStatistics);
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/strategy/RandomOnDiskUsableSpaceStrategy.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/strategy/RandomOnDiskUsableSpaceStrategy.java
index e564011dc73..30c5000396a 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/strategy/RandomOnDiskUsableSpaceStrategy.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/strategy/RandomOnDiskUsableSpaceStrategy.java
@@ -21,13 +21,13 @@ package 
org.apache.iotdb.db.storageengine.rescon.disk.strategy;
 import org.apache.iotdb.commons.utils.JVMCommonUtils;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
 
+import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Random;
 
 public class RandomOnDiskUsableSpaceStrategy extends DirectoryStrategy {
 
-  private Random random = new Random(System.currentTimeMillis());
+  private final SecureRandom random = new SecureRandom();
 
   @Override
   public int nextFolderIndex() throws DiskSpaceInsufficientException {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java
index 7c2ce7bb5eb..3d70faa5923 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java
@@ -41,6 +41,8 @@ import org.apache.tsfile.read.common.Path;
 import org.apache.tsfile.utils.BloomFilter;
 import org.apache.tsfile.utils.Pair;
 import org.apache.tsfile.write.schema.Schema;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.FileWriter;
 import java.io.IOException;
@@ -56,6 +58,8 @@ import java.util.TreeMap;
 
 public class TsFileSketchTool {
 
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(TsFileSketchTool.class);
+
   private String filename;
   private PrintWriter pw;
   private TsFileSketchToolReader reader;
@@ -97,7 +101,7 @@ public class TsFileSketchTool {
             String.format("Cannot load file %s because the file has crashed.", 
filename));
       }
     } catch (IOException e) {
-      e.printStackTrace();
+      LOGGER.warn("Fail to init TsFileSketchTool, {}", filename, e);
     }
   }
 
@@ -214,7 +218,7 @@ public class TsFileSketchTool {
               + "|\t[magic tail] "
               + reader.readTailMagic());
     } catch (IOException e) {
-      e.printStackTrace();
+      LOGGER.warn("Fail to parse TsFileMetadata, {}", filename, e);
     }
   }
 
@@ -274,7 +278,7 @@ public class TsFileSketchTool {
               + "|\t[version number] "
               + reader.readVersionNumber());
     } catch (IOException e) {
-      e.printStackTrace();
+      LOGGER.warn("Fail to printFileInfo, {}", filename, e);
     }
   }
 
@@ -384,7 +388,7 @@ public class TsFileSketchTool {
         printlnBoth(pw, splitStr + " [Chunk Group] of " + 
chunkGroupMetadata.getDevice() + " ends");
       }
     } catch (IOException e) {
-      e.printStackTrace();
+      LOGGER.warn("Fail to parse chunk, {}", filename, e);
     }
   }
 
@@ -414,7 +418,7 @@ public class TsFileSketchTool {
       }
       printlnBoth(pw, splitStr);
     } catch (IOException e) {
-      e.printStackTrace();
+      LOGGER.warn("Fail to printTimeseriesIndex, {}", filename, e);
     }
   }
 
@@ -438,7 +442,7 @@ public class TsFileSketchTool {
                 + chunkMetadata.getOffsetOfChunkHeader());
       }
     } catch (IOException e) {
-      e.printStackTrace();
+      LOGGER.warn("Fail to printTimeseriesIndex, {}", filename, e);
     }
   }
 
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/settle/TsFileAndModSettleTool.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/settle/TsFileAndModSettleTool.java
index cd532daab03..9f01e35e989 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/settle/TsFileAndModSettleTool.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/settle/TsFileAndModSettleTool.java
@@ -183,8 +183,7 @@ public class TsFileAndModSettleTool {
         successCount++;
       } catch (Exception e) {
         logger.info(
-            "Meet error while settling the tsFile : {}", 
resourceToBeSettled.getTsFilePath());
-        e.printStackTrace();
+            "Meet error while settling the tsFile : {}", 
resourceToBeSettled.getTsFilePath(), e);
       }
     }
     if (resourcesToBeSettled.size() == successCount) {
@@ -352,7 +351,7 @@ public class TsFileAndModSettleTool {
         try {
           newTsFileResource.serialize();
         } catch (IOException e) {
-          e.printStackTrace();
+          logger.error("fail to serialize new tsfile resource.", e);
         }
         File tmpResourceFile =
             fsFactory.getFile(
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/utils/TsFileStatisticScan.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/utils/TsFileStatisticScan.java
index 094f12dcc84..20199fac020 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/utils/TsFileStatisticScan.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/utils/TsFileStatisticScan.java
@@ -32,6 +32,8 @@ import org.apache.tsfile.read.reader.page.PageReader;
 import org.apache.tsfile.utils.Binary;
 import org.apache.tsfile.utils.Pair;
 import org.apache.tsfile.utils.TsPrimitiveType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
@@ -47,6 +49,8 @@ import java.util.Set;
 
 public class TsFileStatisticScan extends TsFileSequenceScan {
 
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(TsFileStatisticScan.class);
+
   // (deviceId, measurementId) -> data type
   private final Map<Pair<IDeviceID, String>, TSDataType> seriesDataTypeMap = 
new HashMap<>();
   private final Map<TSDataType, Long> dataTypeSizeMap = new 
EnumMap<>(TSDataType.class);
@@ -261,6 +265,6 @@ public class TsFileStatisticScan extends TsFileSequenceScan 
{
 
   @Override
   protected void onException(Throwable t) {
-    t.printStackTrace();
+    LOGGER.warn("meet error.", t);
   }
 }
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketRandomSample.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketRandomSample.java
index b9c733a2df0..f77b7ab8a72 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketRandomSample.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketRandomSample.java
@@ -30,15 +30,15 @@ import 
org.apache.iotdb.udf.api.exception.UDFInputSeriesDataTypeNotValidExceptio
 import org.apache.iotdb.udf.api.type.Type;
 
 import java.io.IOException;
-import java.util.Random;
+import java.security.SecureRandom;
 
 public class UDTFEqualSizeBucketRandomSample extends UDTFEqualSizeBucketSample 
{
 
-  private Random random;
+  private SecureRandom random;
 
   @Override
   public void beforeStart(UDFParameters parameters, UDTFConfigurations 
configurations) {
-    random = new Random();
+    random = new SecureRandom();
     configurations
         .setAccessStrategy(new SlidingSizeWindowAccessStrategy(bucketSize))
         
.setOutputDataType(UDFDataTypeTransformer.transformToUDFDataType(dataType));

Reply via email to