You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2025/09/24 07:23:48 UTC
(iotdb) branch SonarFix created (now 26b14203c48)
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a change to branch SonarFix
in repository https://gitbox.apache.org/repos/asf/iotdb.git
at 26b14203c48 Fix some sonar smell
This branch includes the following new commits:
new 26b14203c48 Fix some sonar smell
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(iotdb) 01/01: Fix some sonar smell
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch SonarFix
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 26b14203c487e0b1cf8b3266b488fc0ac1c2a9ae
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Wed Sep 24 15:23:33 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));