This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch ty/TableModelGrammar in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit b5120f052014083d68ba2d30ddf35261918c8691 Author: shuwenwei <[email protected]> AuthorDate: Wed Jul 24 11:19:05 2024 +0800 Fix sonar bugs (#13003) (cherry picked from commit ddd8d4d7533dc3514ff5a4419cfa39e55875ea08) --- .../apache/iotdb/opcua/ClientExampleRunner.java | 2 + .../apache/iotdb/SubscriptionSessionExample.java | 52 ++++---- .../java/org/apache/iotdb/tool/ExportData.java | 134 ++++++++++---------- .../java/org/apache/iotdb/tool/ImportData.java | 2 +- .../java/org/apache/iotdb/tool/ImportTsFile.java | 5 + .../org/apache/iotdb/tool/IoTDBDataBackTool.java | 19 +-- .../iotdb/rpc/subscription/config/TopicConfig.java | 16 +-- .../exception/SubscriptionConnectionException.java | 5 + .../SubscriptionIdentifierSemanticException.java | 5 + .../SubscriptionIncompatibleHandlerException.java | 5 + .../SubscriptionParameterNotValidException.java | 5 + .../SubscriptionRuntimeCriticalException.java | 5 + .../exception/SubscriptionRuntimeException.java | 5 + .../SubscriptionRuntimeNonCriticalException.java | 5 + .../org/apache/iotdb/session/NodesSupplier.java | 1 + .../java/org/apache/iotdb/session/Session.java | 1 + .../apache/iotdb/session/SessionConnection.java | 1 + .../org/apache/iotdb/session/pool/SessionPool.java | 1 + .../consumer/SubscriptionConsumer.java | 43 +++---- .../confignode/conf/ConfigNodeDescriptor.java | 2 + .../manager/load/service/EventService.java | 1 + .../metric/PipeConfigNodeRemainingTimeMetrics.java | 1 + .../metric/PipeConfigRegionConnectorMetrics.java | 1 + .../pipe/metric/PipeTemporaryMetaMetrics.java | 1 + .../iotdb/confignode/persistence/ClusterInfo.java | 6 + .../confignode/persistence/ProcedureInfo.java | 5 + .../iotdb/confignode/persistence/TTLInfo.java | 6 + .../confignode/persistence/pipe/PipeInfo.java | 1 + .../schema/CNPhysicalPlanGenerator.java | 1 + .../impl/region/AddRegionPeerProcedure.java | 6 + .../impl/region/RemoveRegionPeerProcedure.java | 6 + .../impl/testonly/NeverFinishProcedure.java | 6 + .../apache/iotdb/consensus/pipe/PipeConsensus.java | 5 +- .../consensus/pipe/PipeConsensusServerImpl.java | 1 + .../apache/iotdb/consensus/ratis/utils/Utils.java | 2 +- .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 14 ++- .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 8 ++ .../batch/PipeTabletEventTsFileBatch.java | 1 + .../protocol/opcua/OpcUaServerBuilder.java | 139 +++++++++++---------- .../pipeconsensus/PipeConsensusAsyncConnector.java | 3 +- .../async/IoTDBDataRegionAsyncConnector.java | 1 + .../PipeDataNodeRemainingEventAndTimeMetrics.java | 1 + .../metric/PipeDataRegionConnectorMetrics.java | 1 + .../metric/PipeDataRegionExtractorMetrics.java | 1 + .../iotdb/db/pipe/metric/PipeProcessorMetrics.java | 1 + .../metric/PipeSchemaRegionConnectorMetrics.java | 1 + .../metric/PipeSchemaRegionExtractorMetrics.java | 1 + .../metric/PipeSchemaRegionListenerMetrics.java | 1 + .../pipe/metric/PipeWALInsertNodeCacheMetrics.java | 1 + .../pipeconsensus/PipeConsensusReceiver.java | 18 +-- .../pipe/resource/wal/PipeWALResourceManager.java | 1 + .../protocol/thrift/impl/ClientRPCServiceImpl.java | 1 + .../operator/process/FilterAndProjectOperator.java | 3 +- .../analyze/cache/schema/SchemaCacheEntry.java | 1 + .../cache/schema/TimeSeriesSchemaCache.java | 3 +- .../dualkeycache/impl/FIFOCacheEntryManager.java | 2 + .../dualkeycache/impl/LRUCacheEntryManager.java | 2 + .../impl/pbtree/mnode/info/CacheMNodeInfo.java | 1 + .../mtree/impl/pbtree/schemafile/SchemaFile.java | 2 + .../mtree/loader/MNodeFactoryLoader.java | 4 + .../iotdb/db/storageengine/StorageEngine.java | 5 + .../db/storageengine/dataregion/DataRegion.java | 1 + .../CompactionFileCountExceededException.java | 1 + .../CompactionLastTimeCheckFailedException.java | 1 + .../CompactionMemoryNotEnoughException.java | 1 + .../CompactionValidationFailedException.java | 1 + .../execute/task/SettleCompactionTask.java | 10 +- .../execute/utils/MultiTsFileDeviceIterator.java | 3 +- .../compaction/io/CompactionTsFileReader.java | 1 + .../repair/RepairTimePartitionScanTask.java | 1 + .../repair/UnsortedFileRepairTaskScheduler.java | 1 + .../schedule/CompactionScheduleTaskManager.java | 12 +- .../schedule/CompactionScheduleTaskWorker.java | 1 + .../compaction/schedule/TTLScheduleTask.java | 1 + .../dataregion/compaction/tool/PrintUtil.java | 2 +- .../compaction/tool/TimePartitionProcessTask.java | 8 +- .../tool/TimePartitionProcessWorker.java | 9 +- .../dataregion/modification/ModificationFile.java | 2 +- .../io/LocalTextModificationAccessor.java | 1 + .../storageengine/dataregion/wal/node/WALNode.java | 1 + .../file/UnsealedTsFileRecoverPerformer.java | 4 +- .../rescon/disk/DirectoryChecker.java | 2 + .../broker/SubscriptionPrefetchingQueue.java | 40 +++--- .../db/tools/schema/PBTreeFileSketchTool.java | 11 +- .../schemaRegion/SchemaRegionAliasAndTagTest.java | 1 + .../settle/SettleCompactionRecoverTest.java | 4 +- .../dataregion/wal/io/WALFileTest.java | 10 +- .../wal/utils/WALInsertNodeCacheTest.java | 4 +- .../apache/iotdb/commons/conf/CommonConfig.java | 2 +- .../commons/consensus/index/ProgressIndex.java | 5 + .../PipeRuntimeConnectorCriticalException.java | 5 + .../pipe/PipeRuntimeNonCriticalException.java | 5 + .../PipeRuntimeOutOfMemoryCriticalException.java | 5 + .../connector/limiter/PipeEndPointRateLimiter.java | 1 + .../connector/protocol/IoTDBAirGapConnector.java | 1 + .../commons/pipe/progress/PipeEventCommitter.java | 1 + .../task/subtask/PipeAbstractConnectorSubtask.java | 1 + .../commons/service/metric/GcTimeAlerter.java | 2 + .../apache/iotdb/commons/udf/builtin/UDTFAbs.java | 1 + .../org/apache/iotdb/library/dlearn/UDTFAR.java | 1 + .../apache/iotdb/library/dmatch/UDTFPtnSym.java | 1 + .../apache/iotdb/library/dprofile/UDTFSample.java | 1 + 102 files changed, 473 insertions(+), 273 deletions(-) diff --git a/example/pipe-opc-ua-sink/src/main/java/org/apache/iotdb/opcua/ClientExampleRunner.java b/example/pipe-opc-ua-sink/src/main/java/org/apache/iotdb/opcua/ClientExampleRunner.java index 599afd23ec2..1fe49a75007 100644 --- a/example/pipe-opc-ua-sink/src/main/java/org/apache/iotdb/opcua/ClientExampleRunner.java +++ b/example/pipe-opc-ua-sink/src/main/java/org/apache/iotdb/opcua/ClientExampleRunner.java @@ -132,6 +132,7 @@ public class ClientExampleRunner { Thread.sleep(1000); System.exit(0); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); e.printStackTrace(); } } @@ -139,6 +140,7 @@ public class ClientExampleRunner { try { Thread.sleep(999_999_999); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); e.printStackTrace(); } } diff --git a/example/session/src/main/java/org/apache/iotdb/SubscriptionSessionExample.java b/example/session/src/main/java/org/apache/iotdb/SubscriptionSessionExample.java index 79380b4bc5b..1ec74a34a29 100644 --- a/example/session/src/main/java/org/apache/iotdb/SubscriptionSessionExample.java +++ b/example/session/src/main/java/org/apache/iotdb/SubscriptionSessionExample.java @@ -136,38 +136,38 @@ public class SubscriptionSessionExample { final Properties config = new Properties(); config.put(ConsumerConstant.CONSUMER_ID_KEY, "c1"); config.put(ConsumerConstant.CONSUMER_GROUP_ID_KEY, "cg1"); - final SubscriptionPullConsumer consumer1 = new SubscriptionPullConsumer(config); - consumer1.open(); - consumer1.subscribe(TOPIC_1); - while (true) { - final List<SubscriptionMessage> messages = consumer1.poll(POLL_TIMEOUT_MS); - if (messages.isEmpty()) { - retryCount++; - if (retryCount >= MAX_RETRY_TIMES) { - break; + try (SubscriptionPullConsumer consumer1 = new SubscriptionPullConsumer(config)) { + consumer1.open(); + consumer1.subscribe(TOPIC_1); + while (true) { + final List<SubscriptionMessage> messages = consumer1.poll(POLL_TIMEOUT_MS); + if (messages.isEmpty()) { + retryCount++; + if (retryCount >= MAX_RETRY_TIMES) { + break; + } } - } - for (final SubscriptionMessage message : messages) { - for (final SubscriptionSessionDataSet dataSet : message.getSessionDataSetsHandler()) { - System.out.println(dataSet.getColumnNames()); - System.out.println(dataSet.getColumnTypes()); - while (dataSet.hasNext()) { - System.out.println(dataSet.next()); + for (final SubscriptionMessage message : messages) { + for (final SubscriptionSessionDataSet dataSet : message.getSessionDataSetsHandler()) { + System.out.println(dataSet.getColumnNames()); + System.out.println(dataSet.getColumnTypes()); + while (dataSet.hasNext()) { + System.out.println(dataSet.next()); + } } } + // Auto commit } - // Auto commit - } - // Show topics and subscriptions - try (final SubscriptionSession subscriptionSession = new SubscriptionSession(HOST, PORT)) { - subscriptionSession.open(); - subscriptionSession.getTopics().forEach((System.out::println)); - subscriptionSession.getSubscriptions().forEach((System.out::println)); - } + // Show topics and subscriptions + try (final SubscriptionSession subscriptionSession = new SubscriptionSession(HOST, PORT)) { + subscriptionSession.open(); + subscriptionSession.getTopics().forEach((System.out::println)); + subscriptionSession.getSubscriptions().forEach((System.out::println)); + } - consumer1.unsubscribe(TOPIC_1); - consumer1.close(); + consumer1.unsubscribe(TOPIC_1); + } } /** multi pull consumer subscribe topic with tsfile format */ diff --git a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ExportData.java b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ExportData.java index a8e8ebf1e45..bc09e2faa51 100644 --- a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ExportData.java +++ b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ExportData.java @@ -507,83 +507,83 @@ public class ExportData extends AbstractDataTool { while (hasNext) { int i = 0; final String finalFilePath = filePath + "_" + fileIndex + ".sql"; - FileWriter writer = new FileWriter(finalFilePath); - if (writeNull) { - break; - } - while (i++ < linesPerFile) { - if (sessionDataSet.hasNext()) { - RowRecord rowRecord = sessionDataSet.next(); - List<Field> fields = rowRecord.getFields(); - List<String> headersTemp = new ArrayList<>(seriesList); - List<String> timeseries = new ArrayList<>(); - if (headers.contains("Device")) { - deviceName = fields.get(0).toString(); - if (deviceName.startsWith(SYSTEM_DATABASE + ".")) { - continue; + try (FileWriter writer = new FileWriter(finalFilePath)) { + if (writeNull) { + break; + } + while (i++ < linesPerFile) { + if (sessionDataSet.hasNext()) { + RowRecord rowRecord = sessionDataSet.next(); + List<Field> fields = rowRecord.getFields(); + List<String> headersTemp = new ArrayList<>(seriesList); + List<String> timeseries = new ArrayList<>(); + if (headers.contains("Device")) { + deviceName = fields.get(0).toString(); + if (deviceName.startsWith(SYSTEM_DATABASE + ".")) { + continue; + } + for (String header : headersTemp) { + timeseries.add(deviceName + "." + header); + } + } else { + if (headers.get(1).startsWith(SYSTEM_DATABASE + ".")) { + continue; + } + timeseries.addAll(headers); + timeseries.remove(0); } - for (String header : headersTemp) { - timeseries.add(deviceName + "." + header); + String sqlMiddle = null; + if (Boolean.TRUE.equals(aligned)) { + sqlMiddle = " ALIGNED VALUES (" + rowRecord.getTimestamp() + ","; + } else { + sqlMiddle = " VALUES (" + rowRecord.getTimestamp() + ","; } - } else { - if (headers.get(1).startsWith(SYSTEM_DATABASE + ".")) { - continue; + List<String> values = new ArrayList<>(); + if (headers.contains("Device")) { + fields.remove(0); } - timeseries.addAll(headers); - timeseries.remove(0); - } - String sqlMiddle = null; - if (Boolean.TRUE.equals(aligned)) { - sqlMiddle = " ALIGNED VALUES (" + rowRecord.getTimestamp() + ","; - } else { - sqlMiddle = " VALUES (" + rowRecord.getTimestamp() + ","; - } - List<String> values = new ArrayList<>(); - if (headers.contains("Device")) { - fields.remove(0); - } - for (int index = 0; index < fields.size(); index++) { - RowRecord next = - session - .executeQueryStatement("SHOW TIMESERIES " + timeseries.get(index), timeout) - .next(); - if (ObjectUtils.isNotEmpty(next)) { - List<Field> timeseriesList = next.getFields(); - String value = fields.get(index).toString(); - if (value.equals("null")) { + for (int index = 0; index < fields.size(); index++) { + RowRecord next = + session + .executeQueryStatement("SHOW TIMESERIES " + timeseries.get(index), timeout) + .next(); + if (ObjectUtils.isNotEmpty(next)) { + List<Field> timeseriesList = next.getFields(); + String value = fields.get(index).toString(); + if (value.equals("null")) { + headersTemp.remove(seriesList.get(index)); + continue; + } + if ("TEXT".equalsIgnoreCase(timeseriesList.get(3).getStringValue())) { + values.add("\"" + value + "\""); + } else { + values.add(value); + } + } else { headersTemp.remove(seriesList.get(index)); continue; } - if ("TEXT".equalsIgnoreCase(timeseriesList.get(3).getStringValue())) { - values.add("\"" + value + "\""); - } else { - values.add(value); - } - } else { - headersTemp.remove(seriesList.get(index)); - continue; } - } - if (CollectionUtils.isNotEmpty(headersTemp)) { - writer.write( - "INSERT INTO " - + deviceName - + "(TIMESTAMP," - + String.join(",", headersTemp) - + ")" - + sqlMiddle - + String.join(",", values) - + ");\n"); - } + if (CollectionUtils.isNotEmpty(headersTemp)) { + writer.write( + "INSERT INTO " + + deviceName + + "(TIMESTAMP," + + String.join(",", headersTemp) + + ")" + + sqlMiddle + + String.join(",", values) + + ");\n"); + } - } else { - hasNext = false; - break; + } else { + hasNext = false; + break; + } } + fileIndex++; + writer.flush(); } - fileIndex++; - writer.flush(); - writer.close(); } } } 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 ec6ef94d47c..a16cce67a2e 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 @@ -464,6 +464,7 @@ public class ImportData extends AbstractDataTool { } } + @SuppressWarnings("java:S2259") private static void importFromSqlFile(File file) { ArrayList<List<Object>> failedRecords = new ArrayList<>(); String failedFilePath = null; @@ -500,7 +501,6 @@ public class ImportData extends AbstractDataTool { writer.flush(); writer.close(); } catch (IOException e) { - ; } } } diff --git a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ImportTsFile.java b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ImportTsFile.java index e417cf2d065..576d2927beb 100644 --- a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ImportTsFile.java +++ b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ImportTsFile.java @@ -331,6 +331,7 @@ public class ImportTsFile extends AbstractTsFileTool { return CODE_OK; } catch (InterruptedException e) { ioTPrinter.println(String.format("Import tsfile fail: %s", e.getMessage())); + Thread.currentThread().interrupt(); return CODE_ERROR; } finally { if (sessionPool != null) { @@ -381,6 +382,7 @@ public class ImportTsFile extends AbstractTsFileTool { try { thread.join(); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); ioTPrinter.println("importTsFile thread join interrupted: " + e.getMessage()); } }); @@ -434,6 +436,9 @@ public class ImportTsFile extends AbstractTsFileTool { } } } + } catch (InterruptedException e) { + ioTPrinter.println("Unexpected error occurred: " + e.getMessage()); + Thread.currentThread().interrupt(); } catch (Exception e) { ioTPrinter.println("Unexpected error occurred: " + e.getMessage()); } 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 b84a2e30a4c..7cc3556562b 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 @@ -171,7 +171,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); @@ -1039,14 +1039,15 @@ public class IoTDBDataBackTool { try { newValue = formatPathForOS(newValue); FileInputStream fileInputStream = new FileInputStream(filePath); - BufferedReader reader = new BufferedReader(new InputStreamReader(fileInputStream)); + List<String> lines; + try (BufferedReader reader = new BufferedReader(new InputStreamReader(fileInputStream))) { - List<String> lines = new ArrayList<>(); - String line; - while ((line = reader.readLine()) != null) { - lines.add(line); + lines = new ArrayList<>(); + String line; + while ((line = reader.readLine()) != null) { + lines.add(line); + } } - reader.close(); boolean keyFound = false; for (int i = 0; i < lines.size(); i++) { @@ -1118,11 +1119,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/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/config/TopicConfig.java b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/config/TopicConfig.java index 178c5a652f5..21a4b4873c8 100644 --- a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/config/TopicConfig.java +++ b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/config/TopicConfig.java @@ -56,14 +56,14 @@ public class TopicConfig extends PipeParameters { private static final Map<String, String> LIVE_MODE_CONFIG = Collections.singletonMap("mode", MODE_LIVE_VALUE); - private static final Set<String> LOOSE_RANGE_KEY_SET = - Collections.unmodifiableSet( - new HashSet<String>() { - { - add("history.loose-range"); - add("realtime.loose-range"); - } - }); + private static final Set<String> LOOSE_RANGE_KEY_SET; + + static { + Set<String> set = new HashSet<>(2); + set.add("history.loose-range"); + set.add("realtime.loose-range"); + LOOSE_RANGE_KEY_SET = Collections.unmodifiableSet(set); + } /////////////////////////////// de/ser /////////////////////////////// diff --git a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionConnectionException.java b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionConnectionException.java index 7bc4f75d59e..1e108ce6430 100644 --- a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionConnectionException.java +++ b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionConnectionException.java @@ -37,4 +37,9 @@ public class SubscriptionConnectionException extends SubscriptionRuntimeCritical && Objects.equals(getMessage(), ((SubscriptionConnectionException) obj).getMessage()) && Objects.equals(getTimeStamp(), ((SubscriptionConnectionException) obj).getTimeStamp()); } + + @Override + public int hashCode() { + return super.hashCode(); + } } diff --git a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionIdentifierSemanticException.java b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionIdentifierSemanticException.java index 6eb9ba6d734..dd10d428023 100644 --- a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionIdentifierSemanticException.java +++ b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionIdentifierSemanticException.java @@ -39,4 +39,9 @@ public class SubscriptionIdentifierSemanticException extends SubscriptionExcepti && Objects.equals( getTimeStamp(), ((SubscriptionIdentifierSemanticException) obj).getTimeStamp()); } + + @Override + public int hashCode() { + return super.hashCode(); + } } diff --git a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionIncompatibleHandlerException.java b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionIncompatibleHandlerException.java index 710b8db8d70..eba4a7a9025 100644 --- a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionIncompatibleHandlerException.java +++ b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionIncompatibleHandlerException.java @@ -39,4 +39,9 @@ public class SubscriptionIncompatibleHandlerException extends SubscriptionExcept && Objects.equals( getTimeStamp(), ((SubscriptionIncompatibleHandlerException) obj).getTimeStamp()); } + + @Override + public int hashCode() { + return super.hashCode(); + } } diff --git a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionParameterNotValidException.java b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionParameterNotValidException.java index 8062c582936..d6cbd5d184c 100644 --- a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionParameterNotValidException.java +++ b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionParameterNotValidException.java @@ -38,4 +38,9 @@ public class SubscriptionParameterNotValidException extends SubscriptionExceptio && Objects.equals( getTimeStamp(), ((SubscriptionParameterNotValidException) obj).getTimeStamp()); } + + @Override + public int hashCode() { + return super.hashCode(); + } } diff --git a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionRuntimeCriticalException.java b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionRuntimeCriticalException.java index 1267ea9085c..72124ba3109 100644 --- a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionRuntimeCriticalException.java +++ b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionRuntimeCriticalException.java @@ -38,4 +38,9 @@ public class SubscriptionRuntimeCriticalException extends SubscriptionException && Objects.equals( getTimeStamp(), ((SubscriptionRuntimeCriticalException) obj).getTimeStamp()); } + + @Override + public int hashCode() { + return super.hashCode(); + } } diff --git a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionRuntimeException.java b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionRuntimeException.java index aa7abb4eb02..cf59ee1a949 100644 --- a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionRuntimeException.java +++ b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionRuntimeException.java @@ -37,4 +37,9 @@ public class SubscriptionRuntimeException extends SubscriptionException { && Objects.equals(getMessage(), ((SubscriptionRuntimeException) obj).getMessage()) && Objects.equals(getTimeStamp(), ((SubscriptionRuntimeException) obj).getTimeStamp()); } + + @Override + public int hashCode() { + return super.hashCode(); + } } diff --git a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionRuntimeNonCriticalException.java b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionRuntimeNonCriticalException.java index 6dab191551d..c367d8a8956 100644 --- a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionRuntimeNonCriticalException.java +++ b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/subscription/exception/SubscriptionRuntimeNonCriticalException.java @@ -39,4 +39,9 @@ public class SubscriptionRuntimeNonCriticalException extends SubscriptionRuntime && Objects.equals( getTimeStamp(), ((SubscriptionRuntimeNonCriticalException) obj).getTimeStamp()); } + + @Override + public int hashCode() { + return super.hashCode(); + } } 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..9284171eade 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,6 +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 + @SuppressWarnings("java:S3077") private volatile List<TEndPoint> availableNodes = new CopyOnWriteArrayList<>(); private final boolean useSSL; 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 cf4095a9036..caa02baee3f 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 @@ -167,6 +167,7 @@ public class Session implements ISession { protected volatile Map<TEndPoint, SessionConnection> endPointToSessionConnection; // used to update datanodeList periodically + @SuppressWarnings("squid:S3077") // Non-primitive fields should not be "volatile" protected volatile ScheduledExecutorService executorService; protected INodeSupplier availableNodes; diff --git a/iotdb-client/session/src/main/java/org/apache/iotdb/session/SessionConnection.java b/iotdb-client/session/src/main/java/org/apache/iotdb/session/SessionConnection.java index d2d5e7ebc2e..7edaee23524 100644 --- a/iotdb-client/session/src/main/java/org/apache/iotdb/session/SessionConnection.java +++ b/iotdb-client/session/src/main/java/org/apache/iotdb/session/SessionConnection.java @@ -84,6 +84,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.function.Supplier; +@SuppressWarnings("java:S2142") public class SessionConnection { private static final Logger logger = LoggerFactory.getLogger(SessionConnection.class); diff --git a/iotdb-client/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java b/iotdb-client/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java index ab94b502c81..5ef9f7616f6 100644 --- a/iotdb-client/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java +++ b/iotdb-client/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java @@ -154,6 +154,7 @@ public class SessionPool implements ISessionPool { private final String formattedNodeUrls; // used to update datanodeList periodically + @SuppressWarnings("java:S3077") private volatile ScheduledExecutorService executorService; private INodeSupplier availableNodes; diff --git a/iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/SubscriptionConsumer.java b/iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/SubscriptionConsumer.java index 9a6b0fccf7a..2c09fabb0c2 100644 --- a/iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/SubscriptionConsumer.java +++ b/iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/SubscriptionConsumer.java @@ -102,6 +102,7 @@ abstract class SubscriptionConsumer implements AutoCloseable { private final String fileSaveDir; private final boolean fileSaveFsync; + @SuppressWarnings("java:S3077") protected volatile Map<String, TopicConfig> subscribedTopics = new HashMap<>(); public boolean allSnapshotTopicMessagesHaveBeenConsumed() { @@ -1067,31 +1068,27 @@ abstract class SubscriptionConsumer implements AutoCloseable { /////////////////////////////// stringify /////////////////////////////// protected Map<String, String> coreReportMessage() { - return new HashMap<String, String>() { - { - put("consumerId", consumerId); - put("consumerGroupId", consumerGroupId); - put("isClosed", isClosed.toString()); - put("fileSaveDir", fileSaveDir); - put("subscribedTopicNames", subscribedTopics.keySet().toString()); - } - }; + Map<String, String> result = new HashMap<>(5); + result.put("consumerId", consumerId); + result.put("consumerGroupId", consumerGroupId); + result.put("isClosed", isClosed.toString()); + result.put("fileSaveDir", fileSaveDir); + result.put("subscribedTopicNames", subscribedTopics.keySet().toString()); + return result; } protected Map<String, String> allReportMessage() { - return new HashMap<String, String>() { - { - put("consumerId", consumerId); - put("consumerGroupId", consumerGroupId); - put("heartbeatIntervalMs", String.valueOf(heartbeatIntervalMs)); - put("endpointsSyncIntervalMs", String.valueOf(endpointsSyncIntervalMs)); - put("providers", providers.toString()); - put("isClosed", isClosed.toString()); - put("isReleased", isReleased.toString()); - put("fileSaveDir", fileSaveDir); - put("fileSaveFsync", String.valueOf(fileSaveFsync)); - put("subscribedTopics", subscribedTopics.toString()); - } - }; + Map<String, String> result = new HashMap<>(10); + result.put("consumerId", consumerId); + result.put("consumerGroupId", consumerGroupId); + result.put("heartbeatIntervalMs", String.valueOf(heartbeatIntervalMs)); + result.put("endpointsSyncIntervalMs", String.valueOf(endpointsSyncIntervalMs)); + result.put("providers", providers.toString()); + result.put("isClosed", isClosed.toString()); + result.put("isReleased", isReleased.toString()); + result.put("fileSaveDir", fileSaveDir); + result.put("fileSaveFsync", String.valueOf(fileSaveFsync)); + result.put("subscribedTopics", subscribedTopics.toString()); + return result; } } diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java index 0d3bd36e895..77190535876 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java @@ -63,6 +63,8 @@ public class ConfigNodeDescriptor { try { ConfigurationFileUtils.checkAndMayUpdate( systemConfigUrl, configNodeUrl, dataNodeUrl, commonConfigUrl); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); } catch (Exception e) { LOGGER.error("Failed to update config file", e); } diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/service/EventService.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/service/EventService.java index 0d885f90524..5f6035f0bca 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/service/EventService.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/service/EventService.java @@ -195,6 +195,7 @@ public class EventService { } } + @SuppressWarnings("java:S2259") private void recordRegionGroupStatistics( Map<TConsensusGroupId, Pair<RegionGroupStatistics, RegionGroupStatistics>> differentRegionGroupStatisticsMap) { diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/metric/PipeConfigNodeRemainingTimeMetrics.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/metric/PipeConfigNodeRemainingTimeMetrics.java index bf974744b21..e3dbbed5d6c 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/metric/PipeConfigNodeRemainingTimeMetrics.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/metric/PipeConfigNodeRemainingTimeMetrics.java @@ -41,6 +41,7 @@ public class PipeConfigNodeRemainingTimeMetrics implements IMetricSet { private static final Logger LOGGER = LoggerFactory.getLogger(PipeConfigNodeRemainingTimeMetrics.class); + @SuppressWarnings("java:S3077") private volatile AbstractMetricService metricService; private final Map<String, PipeConfigNodeRemainingTimeOperator> remainingTimeOperatorMap = diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/metric/PipeConfigRegionConnectorMetrics.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/metric/PipeConfigRegionConnectorMetrics.java index 0900d9d4628..8fcb6fd9029 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/metric/PipeConfigRegionConnectorMetrics.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/metric/PipeConfigRegionConnectorMetrics.java @@ -41,6 +41,7 @@ public class PipeConfigRegionConnectorMetrics implements IMetricSet { private static final Logger LOGGER = LoggerFactory.getLogger(PipeConfigRegionConnectorMetrics.class); + @SuppressWarnings("java:S3077") private volatile AbstractMetricService metricService; private final ConcurrentMap<String, PipeConfigNodeSubtask> subtaskMap = new ConcurrentHashMap<>(); diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/metric/PipeTemporaryMetaMetrics.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/metric/PipeTemporaryMetaMetrics.java index 676b4cd154e..4732ec23658 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/metric/PipeTemporaryMetaMetrics.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/metric/PipeTemporaryMetaMetrics.java @@ -46,6 +46,7 @@ import java.util.concurrent.ConcurrentHashMap; public class PipeTemporaryMetaMetrics implements IMetricSet { private static final Logger LOGGER = LoggerFactory.getLogger(PipeTemporaryMetaMetrics.class); + @SuppressWarnings("java:S3077") private volatile AbstractMetricService metricService; private final Map<String, PipeTemporaryMeta> pipeTemporaryMetaMap = new ConcurrentHashMap<>(); diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ClusterInfo.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ClusterInfo.java index aed3ee32603..b40bc75728d 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ClusterInfo.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ClusterInfo.java @@ -34,6 +34,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.util.Objects; import java.util.UUID; public class ClusterInfo implements SnapshotProcessor { @@ -106,4 +107,9 @@ public class ClusterInfo implements SnapshotProcessor { ClusterInfo clusterInfo = (ClusterInfo) o; return clusterId.equals(clusterInfo.getClusterId()); } + + @Override + public int hashCode() { + return Objects.hashCode(clusterId); + } } diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ProcedureInfo.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ProcedureInfo.java index 0f6b55f7499..b2abf1f95e8 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ProcedureInfo.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ProcedureInfo.java @@ -279,4 +279,9 @@ public class ProcedureInfo implements SnapshotProcessor { return lastProcId.get() == procedureInfo.lastProcId.get() && procedureMap.equals(procedureInfo.procedureMap); } + + @Override + public int hashCode() { + return Objects.hash(lastProcId, procedureMap); + } } diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/TTLInfo.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/TTLInfo.java index 90eb7bacd80..0848fcc4fbf 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/TTLInfo.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/TTLInfo.java @@ -46,6 +46,7 @@ import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -212,6 +213,11 @@ public class TTLInfo implements SnapshotProcessor { .equals(other.showTTL(new ShowTTLPlan()).getPathTTLMap()); } + @Override + public int hashCode() { + return Objects.hash(getTTLCount(), showTTL(new ShowTTLPlan()).getPathTTLMap()); + } + @TestOnly public void clear() { ttlCache.clear(); diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipeInfo.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipeInfo.java index ea1664c27a0..7c1823a7d0c 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipeInfo.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipeInfo.java @@ -70,6 +70,7 @@ public class PipeInfo implements SnapshotProcessor { ///////////////////////////////// Non-query ///////////////////////////////// + @SuppressWarnings("java:S2201") public TSStatus createPipe(final CreatePipePlanV2 plan) { try { final Optional<PipeMeta> pipeMetaBeforeCreation = diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/CNPhysicalPlanGenerator.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/CNPhysicalPlanGenerator.java index f8895158afc..3469a3a5806 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/CNPhysicalPlanGenerator.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/CNPhysicalPlanGenerator.java @@ -114,6 +114,7 @@ public class CNPhysicalPlanGenerator } @Override + @SuppressWarnings("java:S4348") public Iterator<ConfigPhysicalPlan> iterator() { return this; } diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java index 638009104f6..d06f40d3331 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java @@ -46,6 +46,7 @@ import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; import static org.apache.iotdb.commons.utils.KillPoint.KillPoint.setKillPoint; @@ -293,4 +294,9 @@ public class AddRegionPeerProcedure && this.destDataNode.equals(procedure.destDataNode) && this.coordinator.equals(procedure.coordinator); } + + @Override + public int hashCode() { + return Objects.hash(consensusGroupId, destDataNode, coordinator); + } } diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RemoveRegionPeerProcedure.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RemoveRegionPeerProcedure.java index ed4de51ecf8..166714e90fc 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RemoveRegionPeerProcedure.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RemoveRegionPeerProcedure.java @@ -45,6 +45,7 @@ import org.slf4j.LoggerFactory; import java.io.DataOutputStream; import java.io.IOException; import java.nio.ByteBuffer; +import java.util.Objects; import static org.apache.iotdb.commons.utils.KillPoint.KillPoint.setKillPoint; import static org.apache.iotdb.confignode.procedure.state.RemoveRegionPeerState.DELETE_OLD_REGION_PEER; @@ -230,4 +231,9 @@ public class RemoveRegionPeerProcedure && this.targetDataNode.equals(procedure.targetDataNode) && this.coordinator.equals(procedure.coordinator); } + + @Override + public int hashCode() { + return Objects.hash(consensusGroupId, targetDataNode, coordinator); + } } diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/testonly/NeverFinishProcedure.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/testonly/NeverFinishProcedure.java index df6c1220957..7b247bc6588 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/testonly/NeverFinishProcedure.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/testonly/NeverFinishProcedure.java @@ -29,6 +29,7 @@ import org.apache.iotdb.confignode.procedure.store.ProcedureType; import java.io.DataOutputStream; import java.io.IOException; +import java.util.Objects; /** This procedure will never finish. */ @TestOnly @@ -82,4 +83,9 @@ public class NeverFinishProcedure extends StateMachineProcedure<ConfigNodeProced } return getProcId() == ((NeverFinishProcedure) o).getProcId(); } + + @Override + public int hashCode() { + return Objects.hash(getProcId()); + } } diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensus.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensus.java index 8864bb1f450..a6d87669269 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensus.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensus.java @@ -417,8 +417,9 @@ public class PipeConsensus implements IConsensus { @Override public void triggerSnapshot(ConsensusGroupId groupId, boolean force) throws ConsensusException { - Optional.ofNullable(stateMachineMap.get(groupId)) - .orElseThrow(() -> new ConsensusGroupNotExistException(groupId)); + if (!stateMachineMap.containsKey(groupId)) { + throw new ConsensusGroupNotExistException(groupId); + } // Do nothing here because we do not need to transfer snapshot when there are new peers } diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensusServerImpl.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensusServerImpl.java index 3865349db25..e8a30fba388 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensusServerImpl.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensusServerImpl.java @@ -138,6 +138,7 @@ public class PipeConsensusServerImpl { } } + @SuppressWarnings("java:S2276") public synchronized void start(boolean startConsensusPipes) throws IOException { stateMachine.start(); MetricService.getInstance().addMetricSet(this.pipeConsensusServerMetrics); diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/utils/Utils.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/utils/Utils.java index 7c84ed9a9e5..9f25e837924 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/utils/Utils.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/utils/Utils.java @@ -303,7 +303,7 @@ public class Utils { properties, config.getLog().getSegmentCacheSizeMax()); RaftServerConfigKeys.Log.setPreallocatedSize(properties, config.getLog().getPreallocatedSize()); final SizeInBytes writeBufferSize = - SizeInBytes.valueOf(config.getLeaderLogAppender().getBufferByteLimit().getSizeInt() + 8); + SizeInBytes.valueOf(config.getLeaderLogAppender().getBufferByteLimit().getSizeInt() + 8L); RaftServerConfigKeys.Log.setWriteBufferSize(properties, writeBufferSize); RaftServerConfigKeys.Log.setForceSyncNum(properties, config.getLog().getForceSyncNum()); RaftServerConfigKeys.Log.setUnsafeFlushEnabled( 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 082d0364f28..80bffe7074b 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 @@ -1331,12 +1331,17 @@ public class IoTDBConfig { formulateLoadTsFileDirs(tierDataDirs); } - void reloadDataDirs(String[][] tierDataDirs) throws LoadConfigurationException { + void reloadDataDirs(String[][] newTierDataDirs) throws LoadConfigurationException { // format data directories - formulateDataDirs(tierDataDirs); + formulateDataDirs(newTierDataDirs); + if (newTierDataDirs.length < this.tierDataDirs.length) { + String msg = "some data dirs are removed from data_dirs parameter, please add them back."; + logger.error(msg); + throw new LoadConfigurationException(msg); + } // make sure old data directories not removed for (int i = 0; i < this.tierDataDirs.length; ++i) { - List<String> newDirs = Arrays.asList(tierDataDirs[i]); + List<String> newDirs = Arrays.asList(newTierDataDirs[i]); for (String oldDir : this.tierDataDirs[i]) { if (newDirs.stream() .noneMatch( @@ -1350,7 +1355,7 @@ public class IoTDBConfig { } } } - this.tierDataDirs = tierDataDirs; + this.tierDataDirs = newTierDataDirs; reloadSystemMetrics(); } @@ -1430,6 +1435,7 @@ public class IoTDBConfig { return tierDataDirs; } + @SuppressWarnings("javabugs:S6466") public void setTierDataDirs(String[][] tierDataDirs) { formulateDataDirs(tierDataDirs); this.tierDataDirs = tierDataDirs; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java index b131acede4f..564c146bc94 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java @@ -111,6 +111,9 @@ public class IoTDBDescriptor { ConfigurationFileUtils.checkAndMayUpdate( systemConfigUrl, configNodeUrl, dataNodeUrl, commonConfigUrl); } catch (Exception e) { + if (e instanceof InterruptedException) { + Thread.currentThread().interrupt(); + } LOGGER.error("Failed to update config file", e); } } @@ -1860,6 +1863,9 @@ public class IoTDBDescriptor { // update retry config commonDescriptor.loadRetryProperties(properties); } catch (Exception e) { + if (e instanceof InterruptedException) { + Thread.currentThread().interrupt(); + } throw new QueryProcessException(String.format("Fail to reload configuration because %s", e)); } } @@ -2015,6 +2021,7 @@ public class IoTDBDescriptor { } } + @SuppressWarnings("java:S3518") private void initStorageEngineAllocate(Properties properties) { long storageMemoryTotal = conf.getAllocateMemoryForStorageEngine(); String valueOfStorageEngineMemoryProportion = @@ -2069,6 +2076,7 @@ public class IoTDBDescriptor { } } + @SuppressWarnings("squid:S3518") private void initSchemaMemoryAllocate(Properties properties) { long schemaMemoryTotal = conf.getAllocateMemoryForSchema(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/payload/evolvable/batch/PipeTabletEventTsFileBatch.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/payload/evolvable/batch/PipeTabletEventTsFileBatch.java index 57a73935304..663cdadaeba 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/payload/evolvable/batch/PipeTabletEventTsFileBatch.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/payload/evolvable/batch/PipeTabletEventTsFileBatch.java @@ -77,6 +77,7 @@ public class PipeTabletEventTsFileBatch extends PipeTabletEventBatch { private final List<Tablet> tabletList = new ArrayList<>(); private final List<Boolean> isTabletAlignedList = new ArrayList<>(); + @SuppressWarnings("java:S3077") private volatile TsFileWriter fileWriter; public PipeTabletEventTsFileBatch(final int maxDelayInMs, final long requestMaxBatchSizeInBytes) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/opcua/OpcUaServerBuilder.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/opcua/OpcUaServerBuilder.java index ceb39d3eac7..85982318404 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/opcua/OpcUaServerBuilder.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/opcua/OpcUaServerBuilder.java @@ -132,74 +132,77 @@ public class OpcUaServerBuilder { final DefaultCertificateManager certificateManager = new DefaultCertificateManager(loader.getServerKeyPair(), loader.getServerCertificate()); - final DefaultTrustListManager trustListManager = new DefaultTrustListManager(pkiDir); - LOGGER.info( - "Certificate directory is: {}, Please move certificates from the reject dir to the trusted directory to allow encrypted access", - pkiDir.getAbsolutePath()); - - final KeyPair httpsKeyPair = SelfSignedCertificateGenerator.generateRsaKeyPair(2048); - - final SelfSignedHttpsCertificateBuilder httpsCertificateBuilder = - new SelfSignedHttpsCertificateBuilder(httpsKeyPair); - httpsCertificateBuilder.setCommonName(HostnameUtil.getHostname()); - HostnameUtil.getHostnames(WILD_CARD_ADDRESS).forEach(httpsCertificateBuilder::addDnsName); - final X509Certificate httpsCertificate = httpsCertificateBuilder.build(); - - final DefaultServerCertificateValidator certificateValidator = - new DefaultServerCertificateValidator(trustListManager); - - final UsernameIdentityValidator identityValidator = - new UsernameIdentityValidator( - true, - authChallenge -> { - String inputUsername = authChallenge.getUsername(); - String inputPassword = authChallenge.getPassword(); - - return inputUsername.equals(user) && inputPassword.equals(password); - }); - - final X509IdentityValidator x509IdentityValidator = new X509IdentityValidator(c -> true); - - final X509Certificate certificate = - certificateManager.getCertificates().stream() - .findFirst() - .orElseThrow( - () -> - new UaRuntimeException( - StatusCodes.Bad_ConfigurationError, "No certificate found")); - - final String applicationUri = - CertificateUtil.getSanUri(certificate) - .orElseThrow( - () -> - new UaRuntimeException( - StatusCodes.Bad_ConfigurationError, - "Certificate is missing the application URI")); - - final Set<EndpointConfiguration> endpointConfigurations = - createEndpointConfigurations(certificate, tcpBindPort, httpsBindPort); - - final OpcUaServerConfig serverConfig = - OpcUaServerConfig.builder() - .setApplicationUri(applicationUri) - .setApplicationName(LocalizedText.english("Apache IoTDB OPC UA server")) - .setEndpoints(endpointConfigurations) - .setBuildInfo( - new BuildInfo( - "urn:apache:iotdb:opc-ua-server", - "apache", - "Apache IoTDB OPC UA server", - OpcUaServer.SDK_VERSION, - "", - DateTime.now())) - .setCertificateManager(certificateManager) - .setTrustListManager(trustListManager) - .setCertificateValidator(certificateValidator) - .setHttpsKeyPair(httpsKeyPair) - .setHttpsCertificateChain(new X509Certificate[] {httpsCertificate}) - .setIdentityValidator(new CompositeValidator(identityValidator, x509IdentityValidator)) - .setProductUri("urn:apache:iotdb:opc-ua-server") - .build(); + final OpcUaServerConfig serverConfig; + try (DefaultTrustListManager trustListManager = new DefaultTrustListManager(pkiDir)) { + LOGGER.info( + "Certificate directory is: {}, Please move certificates from the reject dir to the trusted directory to allow encrypted access", + pkiDir.getAbsolutePath()); + + final KeyPair httpsKeyPair = SelfSignedCertificateGenerator.generateRsaKeyPair(2048); + + final SelfSignedHttpsCertificateBuilder httpsCertificateBuilder = + new SelfSignedHttpsCertificateBuilder(httpsKeyPair); + httpsCertificateBuilder.setCommonName(HostnameUtil.getHostname()); + HostnameUtil.getHostnames(WILD_CARD_ADDRESS).forEach(httpsCertificateBuilder::addDnsName); + final X509Certificate httpsCertificate = httpsCertificateBuilder.build(); + + final DefaultServerCertificateValidator certificateValidator = + new DefaultServerCertificateValidator(trustListManager); + + final UsernameIdentityValidator identityValidator = + new UsernameIdentityValidator( + true, + authChallenge -> { + String inputUsername = authChallenge.getUsername(); + String inputPassword = authChallenge.getPassword(); + + return inputUsername.equals(user) && inputPassword.equals(password); + }); + + final X509IdentityValidator x509IdentityValidator = new X509IdentityValidator(c -> true); + + final X509Certificate certificate = + certificateManager.getCertificates().stream() + .findFirst() + .orElseThrow( + () -> + new UaRuntimeException( + StatusCodes.Bad_ConfigurationError, "No certificate found")); + + final String applicationUri = + CertificateUtil.getSanUri(certificate) + .orElseThrow( + () -> + new UaRuntimeException( + StatusCodes.Bad_ConfigurationError, + "Certificate is missing the application URI")); + + final Set<EndpointConfiguration> endpointConfigurations = + createEndpointConfigurations(certificate, tcpBindPort, httpsBindPort); + + serverConfig = + OpcUaServerConfig.builder() + .setApplicationUri(applicationUri) + .setApplicationName(LocalizedText.english("Apache IoTDB OPC UA server")) + .setEndpoints(endpointConfigurations) + .setBuildInfo( + new BuildInfo( + "urn:apache:iotdb:opc-ua-server", + "apache", + "Apache IoTDB OPC UA server", + OpcUaServer.SDK_VERSION, + "", + DateTime.now())) + .setCertificateManager(certificateManager) + .setTrustListManager(trustListManager) + .setCertificateValidator(certificateValidator) + .setHttpsKeyPair(httpsKeyPair) + .setHttpsCertificateChain(new X509Certificate[] {httpsCertificate}) + .setIdentityValidator( + new CompositeValidator(identityValidator, x509IdentityValidator)) + .setProductUri("urn:apache:iotdb:opc-ua-server") + .build(); + } // Setup server to enable event posting final OpcUaServer server = new OpcUaServer(serverConfig); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/pipeconsensus/PipeConsensusAsyncConnector.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/pipeconsensus/PipeConsensusAsyncConnector.java index a61156a98ed..7520f217df3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/pipeconsensus/PipeConsensusAsyncConnector.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/pipeconsensus/PipeConsensusAsyncConnector.java @@ -474,6 +474,7 @@ public class PipeConsensusAsyncConnector extends IoTDBConnector implements Conse * * @param event event to retry */ + @SuppressWarnings("java:S899") public void addFailureEventToRetryQueue(final Event event) { if (isClosed.get()) { if (event instanceof EnrichedEvent) { @@ -482,7 +483,7 @@ public class PipeConsensusAsyncConnector extends IoTDBConnector implements Conse return; } - boolean ignore = retryEventQueue.offer(event); + retryEventQueue.offer(event); if (LOGGER.isDebugEnabled()) { LOGGER.debug( "PipeConsensus-ConsensusGroup-{}: Event {} transfer failed, will be added to retry queue.", diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/thrift/async/IoTDBDataRegionAsyncConnector.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/thrift/async/IoTDBDataRegionAsyncConnector.java index b902a8b2f46..255e5adec76 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/thrift/async/IoTDBDataRegionAsyncConnector.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/thrift/async/IoTDBDataRegionAsyncConnector.java @@ -469,6 +469,7 @@ public class IoTDBDataRegionAsyncConnector extends IoTDBConnector { * * @param event {@link Event} to retry */ + @SuppressWarnings("java:S899") public void addFailureEventToRetryQueue(final Event event) { if (event instanceof EnrichedEvent && ((EnrichedEvent) event).isReleased()) { return; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeDataNodeRemainingEventAndTimeMetrics.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeDataNodeRemainingEventAndTimeMetrics.java index 2e8bf3c490b..83426a500c3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeDataNodeRemainingEventAndTimeMetrics.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeDataNodeRemainingEventAndTimeMetrics.java @@ -45,6 +45,7 @@ public class PipeDataNodeRemainingEventAndTimeMetrics implements IMetricSet { private static final Logger LOGGER = LoggerFactory.getLogger(PipeDataNodeRemainingEventAndTimeMetrics.class); + @SuppressWarnings("java:S3077") private volatile AbstractMetricService metricService; private final Map<String, PipeDataNodeRemainingEventAndTimeOperator> diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeDataRegionConnectorMetrics.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeDataRegionConnectorMetrics.java index f467cac20bd..bf2ce7b5763 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeDataRegionConnectorMetrics.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeDataRegionConnectorMetrics.java @@ -43,6 +43,7 @@ public class PipeDataRegionConnectorMetrics implements IMetricSet { private static final Logger LOGGER = LoggerFactory.getLogger(PipeDataRegionConnectorMetrics.class); + @SuppressWarnings("java:S3077") private volatile AbstractMetricService metricService; private final Map<String, PipeConnectorSubtask> connectorMap = new HashMap<>(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeDataRegionExtractorMetrics.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeDataRegionExtractorMetrics.java index d18b4de51e4..dc90007f459 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeDataRegionExtractorMetrics.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeDataRegionExtractorMetrics.java @@ -44,6 +44,7 @@ public class PipeDataRegionExtractorMetrics implements IMetricSet { private static final Logger LOGGER = LoggerFactory.getLogger(PipeDataRegionExtractorMetrics.class); + @SuppressWarnings("java:S3077") private volatile AbstractMetricService metricService; private final Map<String, IoTDBDataRegionExtractor> extractorMap = new ConcurrentHashMap<>(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeProcessorMetrics.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeProcessorMetrics.java index 70ddf1d24af..d29defdc1fb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeProcessorMetrics.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeProcessorMetrics.java @@ -42,6 +42,7 @@ public class PipeProcessorMetrics implements IMetricSet { private static final Logger LOGGER = LoggerFactory.getLogger(PipeProcessorMetrics.class); + @SuppressWarnings("java:S3077") private volatile AbstractMetricService metricService; private final Map<String, PipeProcessorSubtask> processorMap = new HashMap<>(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeSchemaRegionConnectorMetrics.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeSchemaRegionConnectorMetrics.java index e3062c9bd78..482317b4790 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeSchemaRegionConnectorMetrics.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeSchemaRegionConnectorMetrics.java @@ -42,6 +42,7 @@ public class PipeSchemaRegionConnectorMetrics implements IMetricSet { private static final Logger LOGGER = LoggerFactory.getLogger(PipeSchemaRegionConnectorMetrics.class); + @SuppressWarnings("java:S3077") private volatile AbstractMetricService metricService; private final ConcurrentMap<String, PipeConnectorSubtask> connectorMap = diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeSchemaRegionExtractorMetrics.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeSchemaRegionExtractorMetrics.java index 44480ecac0f..6301494932b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeSchemaRegionExtractorMetrics.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeSchemaRegionExtractorMetrics.java @@ -41,6 +41,7 @@ public class PipeSchemaRegionExtractorMetrics implements IMetricSet { private static final Logger LOGGER = LoggerFactory.getLogger(PipeSchemaRegionExtractorMetrics.class); + @SuppressWarnings("java:S3077") private volatile AbstractMetricService metricService; private final Map<String, IoTDBSchemaRegionExtractor> extractorMap = new ConcurrentHashMap<>(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeSchemaRegionListenerMetrics.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeSchemaRegionListenerMetrics.java index 3ee091c2147..ada38e46f2f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeSchemaRegionListenerMetrics.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeSchemaRegionListenerMetrics.java @@ -41,6 +41,7 @@ public class PipeSchemaRegionListenerMetrics implements IMetricSet { private static final Logger LOGGER = LoggerFactory.getLogger(PipeSchemaRegionListenerMetrics.class); + @SuppressWarnings("java:S3077") private volatile AbstractMetricService metricService; private final ConcurrentMap<Integer, SchemaRegionListeningQueue> listeningQueueMap = diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeWALInsertNodeCacheMetrics.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeWALInsertNodeCacheMetrics.java index 64c81512cc1..ccf556e5e09 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeWALInsertNodeCacheMetrics.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/metric/PipeWALInsertNodeCacheMetrics.java @@ -40,6 +40,7 @@ public class PipeWALInsertNodeCacheMetrics implements IMetricSet { private static final Logger LOGGER = LoggerFactory.getLogger(PipeWALInsertNodeCacheMetrics.class); + @SuppressWarnings("java:S3077") private volatile AbstractMetricService metricService; private final Map<Integer, WALInsertNodeCache> cacheMap = new ConcurrentHashMap<>(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/pipeconsensus/PipeConsensusReceiver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/pipeconsensus/PipeConsensusReceiver.java index 2480ac702be..e3fb7a968da 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/pipeconsensus/PipeConsensusReceiver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/pipeconsensus/PipeConsensusReceiver.java @@ -79,6 +79,7 @@ import java.util.Objects; import java.util.Optional; import java.util.TreeSet; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; @@ -1033,6 +1034,7 @@ public class PipeConsensusReceiver { } } + @SuppressWarnings("java:S3655") public PipeConsensusTsFileWriter borrowCorrespondingWriter(TCommitId commitId) { Optional<PipeConsensusTsFileWriter> diskBuffer = pipeConsensusTsFileWriterPool.stream() @@ -1211,8 +1213,8 @@ public class PipeConsensusReceiver { private final PipeConsensusTsFileWriterPool tsFileWriterPool; private long onSyncedCommitIndex = 0; private int connectorRebootTimes = 0; - private volatile int WALEventCount = 0; - private volatile int tsFileEventCount = 0; + private AtomicInteger WALEventCount = new AtomicInteger(0); + private AtomicInteger tsFileEventCount = new AtomicInteger(0); public RequestExecutor( PipeConsensusReceiverMetrics metric, PipeConsensusTsFileWriterPool tsFileWriterPool) { @@ -1235,10 +1237,10 @@ public class PipeConsensusReceiver { onSyncedCommitIndex = nextSyncedCommitIndex; // update metric, notice that curMeta is never null. if (isTransferTsFileSeal) { - tsFileEventCount--; + tsFileEventCount.decrementAndGet(); metric.recordReceiveTsFileTimer(System.nanoTime() - curMeta.getStartApplyNanos()); } else { - WALEventCount--; + WALEventCount.decrementAndGet(); metric.recordReceiveWALTimer(System.nanoTime() - curMeta.getStartApplyNanos()); } } @@ -1287,10 +1289,10 @@ public class PipeConsensusReceiver { // update metric if (isTransferTsFilePiece && !reqExecutionOrderBuffer.contains(requestMeta)) { // only update tsFileEventCount when tsFileEvent is first enqueue. - tsFileEventCount++; + tsFileEventCount.incrementAndGet(); } if (!isTransferTsFileSeal && !isTransferTsFilePiece) { - WALEventCount++; + WALEventCount.incrementAndGet(); } reqExecutionOrderBuffer.add(requestMeta); @@ -1471,11 +1473,11 @@ public class PipeConsensusReceiver { } public int getWALEventCount() { - return this.requestExecutor.WALEventCount; + return this.requestExecutor.WALEventCount.get(); } public int getTsFileEventCount() { - return this.requestExecutor.tsFileEventCount; + return this.requestExecutor.tsFileEventCount.get(); } public String getConsensusGroupIdStr() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/wal/PipeWALResourceManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/wal/PipeWALResourceManager.java index 9adb976c354..9bc3a4a030a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/wal/PipeWALResourceManager.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/wal/PipeWALResourceManager.java @@ -61,6 +61,7 @@ public abstract class PipeWALResourceManager { Math.max(PipeWALResource.WAL_MIN_TIME_TO_LIVE_IN_MS / 1000, 1)); } + @SuppressWarnings("java:S2222") private void ttlCheck() { final Iterator<Map.Entry<Long, PipeWALResource>> iterator = memtableIdToPipeWALResourceMap.entrySet().iterator(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java index 183af34671b..fc0706cef62 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java @@ -711,6 +711,7 @@ public class ClientRPCServiceImpl implements IClientRPCServiceWithHandler { } } + @SuppressWarnings("java:S2095") // close() do nothing private List<TsBlock> executeGroupByQueryInternal( SessionInfo sessionInfo, IDeviceID deviceID, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/FilterAndProjectOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/FilterAndProjectOperator.java index a624b7a669b..268dae8b884 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/FilterAndProjectOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/FilterAndProjectOperator.java @@ -118,8 +118,7 @@ public class FilterAndProjectOperator implements ProcessOperator { long inputRowCount = input.getPositionCount(); TsBlock filterResult = getFilterTsBlock(input); - filteredRowCount += - filterResult == null ? inputRowCount : inputRowCount - filterResult.getPositionCount(); + filteredRowCount += inputRowCount - filterResult.getPositionCount(); operatorContext.recordSpecifiedInfo("Filtered Rows", Long.toString(filteredRowCount)); // contains non-mappable udf, we leave calculation for TransformOperator diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/SchemaCacheEntry.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/SchemaCacheEntry.java index bf6d5c31a86..b105156fdef 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/SchemaCacheEntry.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/SchemaCacheEntry.java @@ -40,6 +40,7 @@ public class SchemaCacheEntry implements IMeasurementSchemaInfo { private final Map<String, String> tagMap; private final boolean isAligned; + @SuppressWarnings("java:S3077") private volatile ILastCacheContainer lastCacheContainer = null; public SchemaCacheEntry( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/TimeSeriesSchemaCache.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/TimeSeriesSchemaCache.java index 67a286ad444..686df60df36 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/TimeSeriesSchemaCache.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/TimeSeriesSchemaCache.java @@ -200,7 +200,6 @@ public class TimeSeriesSchemaCache { @Override public void computeValue(int index, SchemaCacheEntry value) { - index = realIndex; if (value == null) { indexOfMissingMeasurements.add(recordMissingIndex); } else { @@ -216,7 +215,7 @@ public class TimeSeriesSchemaCache { + "Please check it.", fullPath))); } - schemaComputation.computeMeasurementOfView(index, value, value.isAligned()); + schemaComputation.computeMeasurementOfView(realIndex, value, value.isAligned()); } } }); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/FIFOCacheEntryManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/FIFOCacheEntryManager.java index b19b1f4b4de..7d8a07acf4c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/FIFOCacheEntryManager.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/FIFOCacheEntryManager.java @@ -113,6 +113,8 @@ public class FIFOCacheEntryManager<FK, SK, V> static class FIFOCacheEntry<SK, V> implements ICacheEntry<SK, V> { private final SK secondKey; + + @SuppressWarnings("java:S3077") private volatile ICacheEntryGroup cacheEntryGroup; private V value; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/LRUCacheEntryManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/LRUCacheEntryManager.java index 7a3ae5dd2a6..726c4489ce2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/LRUCacheEntryManager.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/LRUCacheEntryManager.java @@ -111,6 +111,8 @@ class LRUCacheEntryManager<FK, SK, V> static class LRUCacheEntry<SK, V> implements ICacheEntry<SK, V> { private final SK secondKey; + + @SuppressWarnings("java:S3077") private volatile ICacheEntryGroup cacheEntryGroup; private V value; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/mnode/info/CacheMNodeInfo.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/mnode/info/CacheMNodeInfo.java index 91265a42f03..9663066e9eb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/mnode/info/CacheMNodeInfo.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/mnode/info/CacheMNodeInfo.java @@ -22,6 +22,7 @@ import org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.mem.mnode.info.B import org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.pbtree.lock.LockEntry; import org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.pbtree.memory.cache.CacheEntry; +@SuppressWarnings("java:S3077") public class CacheMNodeInfo extends BasicMNodeInfo { private volatile CacheEntry cacheEntry; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/schemafile/SchemaFile.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/schemafile/SchemaFile.java index 248f85bec2e..692736474ba 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/schemafile/SchemaFile.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/schemafile/SchemaFile.java @@ -57,6 +57,7 @@ import java.util.Iterator; * file. It Loads or writes a page length bytes at once, with an 32 bits int to index a page inside * a file. Use SlottedFile to manipulate segment(sp) inside a page(an array of bytes). */ +@SuppressWarnings("java:S2095") public class SchemaFile implements ISchemaFile { private static final Logger logger = LoggerFactory.getLogger(SchemaFile.class); @@ -94,6 +95,7 @@ public class SchemaFile implements ISchemaFile { // region Constructors // todo refactor constructor for schema file in Jan. + @SuppressWarnings("java:S899") private SchemaFile( String sgName, int schemaRegionId, boolean override, long ttl, boolean isEntity) throws IOException, MetadataException { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/loader/MNodeFactoryLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/loader/MNodeFactoryLoader.java index a3e2b76cc7d..9e0fe8c2b7d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/loader/MNodeFactoryLoader.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/loader/MNodeFactoryLoader.java @@ -40,7 +40,11 @@ public class MNodeFactoryLoader { private final List<String> scanPackages = new ArrayList<>(); private String env; + + @SuppressWarnings("java:S3077") private volatile IMNodeFactory<ICachedMNode> cachedMNodeIMNodeFactory; + + @SuppressWarnings("java:S3077") private volatile IMNodeFactory<IMemMNode> memMNodeIMNodeFactory; private MNodeFactoryLoader() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java index 5035b389279..23f046d7a15 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java @@ -545,6 +545,8 @@ public class StorageEngine implements IService { try { repairDataTaskManager.markRepairTaskStopping(); repairDataTaskManager.abortRepairTask(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); } catch (IOException ignored) { } } @@ -625,6 +627,9 @@ public class StorageEngine implements IService { try { ConfigurationFileUtils.updateConfigurationFile(new File(configFileUrl.getFile()), properties); } catch (Exception e) { + if (e instanceof InterruptedException) { + Thread.currentThread().interrupt(); + } return RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR, e.getMessage()); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java index bf3409076d8..ed24c9be37e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java @@ -2766,6 +2766,7 @@ public class DataRegion implements IDataRegionForQuery { try { return executeCompaction(); } catch (InterruptedException ignored) { + Thread.currentThread().interrupt(); return 0; } finally { CompactionScheduler.exclusiveUnlockCompactionSelection(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionFileCountExceededException.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionFileCountExceededException.java index 4bf36ac9f4b..2b4a88a6513 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionFileCountExceededException.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionFileCountExceededException.java @@ -25,6 +25,7 @@ public class CompactionFileCountExceededException extends Exception { } @Override + @SuppressWarnings("java:S3551") public Throwable fillInStackTrace() { return this; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionLastTimeCheckFailedException.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionLastTimeCheckFailedException.java index 26458513ba8..61bb138b1d0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionLastTimeCheckFailedException.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionLastTimeCheckFailedException.java @@ -50,6 +50,7 @@ public class CompactionLastTimeCheckFailedException extends RuntimeException { } @Override + @SuppressWarnings("java:S3551") public Throwable fillInStackTrace() { return this; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionMemoryNotEnoughException.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionMemoryNotEnoughException.java index 98072e157dd..369a6bea95b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionMemoryNotEnoughException.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionMemoryNotEnoughException.java @@ -26,6 +26,7 @@ public class CompactionMemoryNotEnoughException extends Exception { } @Override + @SuppressWarnings("java:S3551") public Throwable fillInStackTrace() { return this; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionValidationFailedException.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionValidationFailedException.java index b60dd6845fe..0d7abc2c683 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionValidationFailedException.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/exception/CompactionValidationFailedException.java @@ -42,6 +42,7 @@ public class CompactionValidationFailedException extends RuntimeException { } @Override + @SuppressWarnings("java:S3551") public Throwable fillInStackTrace() { return this; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/SettleCompactionTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/SettleCompactionTask.java index bdfd3cf3051..753365f7531 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/SettleCompactionTask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/SettleCompactionTask.java @@ -37,6 +37,7 @@ import java.nio.file.Files; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Objects; /** * This settle task contains fully_dirty files and partially_dirty files. This task will do the @@ -256,7 +257,7 @@ public class SettleCompactionTask extends InnerSpaceCompactionTask { dataRegionId); try { if (needRecoverTaskInfoFromLogFile) { - recoverTaskInfoFromLogFile(); + recoverSettleTaskInfoFromLogFile(); } recoverFullyDirtyFiles(); recoverPartiallyDirtyFiles(); @@ -286,7 +287,7 @@ public class SettleCompactionTask extends InnerSpaceCompactionTask { } } - public void recoverTaskInfoFromLogFile() throws IOException { + public void recoverSettleTaskInfoFromLogFile() throws IOException { LOGGER.info( "{}-{} [Compaction][Recover] compaction log is {}", storageGroupName, @@ -384,4 +385,9 @@ public class SettleCompactionTask extends InnerSpaceCompactionTask { otherSettleCompactionTask.selectedTsFileResourceList) && this.performer.getClass().isInstance(otherSettleCompactionTask.performer); } + + @Override + public int hashCode() { + return Objects.hash(fullyDirtyFiles, selectedTsFileResourceList, performer); + } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java index c47c8493ff6..d2b2bf25b28 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java @@ -174,7 +174,7 @@ public class MultiTsFileDeviceIterator implements AutoCloseable { * * @return Pair of device full path and whether this device is aligned */ - @SuppressWarnings("squid:S135") + @SuppressWarnings({"squid:S135", "java:S2259"}) public Pair<IDeviceID, Boolean> nextDevice() throws IllegalPathException { List<TsFileResource> toBeRemovedResources = new LinkedList<>(); Pair<IDeviceID, Boolean> minDevice = null; @@ -490,6 +490,7 @@ public class MultiTsFileDeviceIterator implements AutoCloseable { } @Override + @SuppressWarnings("java:S2272") public Map<String, List<ChunkMetadata>> next() { return Collections.emptyMap(); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/io/CompactionTsFileReader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/io/CompactionTsFileReader.java index 6c62692889d..745dde2f696 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/io/CompactionTsFileReader.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/io/CompactionTsFileReader.java @@ -105,6 +105,7 @@ public class CompactionTsFileReader extends TsFileSequenceReader { return super.readMemChunk(metaData); } + @SuppressWarnings("java:S2177") public ChunkHeader readChunkHeader(long position) throws IOException { return ChunkHeader.deserializeFrom(tsFileInput, position); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairTimePartitionScanTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairTimePartitionScanTask.java index d3b3ed8e963..828307e6397 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairTimePartitionScanTask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairTimePartitionScanTask.java @@ -56,6 +56,7 @@ public class RepairTimePartitionScanTask implements Callable<Void> { } @Override + @SuppressWarnings("java:S2142") public Void call() { try { scanTimePartitionFiles(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/UnsortedFileRepairTaskScheduler.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/UnsortedFileRepairTaskScheduler.java index 32f18434d94..5cdf9493581 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/UnsortedFileRepairTaskScheduler.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/UnsortedFileRepairTaskScheduler.java @@ -174,6 +174,7 @@ public class UnsortedFileRepairTaskScheduler implements Runnable { } @Override + @SuppressWarnings("java:S2142") public void run() { try { if (!checkConditionsToStartRepairTask()) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskManager.java index 691318a6f4a..db41bbd53e5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskManager.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskManager.java @@ -76,7 +76,7 @@ public class CompactionScheduleTaskManager implements IService { logger.info("Compaction schedule task manager started."); } - public void stopCompactionScheduleTasks() { + public void stopCompactionScheduleTasks() throws InterruptedException { lock.lock(); try { for (Future<Void> task : submitCompactionScheduleTaskFutures) { @@ -88,6 +88,8 @@ public class CompactionScheduleTaskManager implements IService { } try { task.get(); + } catch (InterruptedException e) { + throw e; } catch (Exception ignored) { } } @@ -98,7 +100,7 @@ public class CompactionScheduleTaskManager implements IService { } } - public void checkAndMayApplyConfigurationChange() { + public void checkAndMayApplyConfigurationChange() throws InterruptedException { lock.lock(); try { // ignored the change if executing repair data task @@ -186,7 +188,7 @@ public class CompactionScheduleTaskManager implements IService { init = true; } - private void restartThreadPool() { + private void restartThreadPool() throws InterruptedException { stopCompactionScheduleTasks(); compactionScheduleTaskThreadPool.shutdownNow(); waitForThreadPoolTerminated(); @@ -286,7 +288,7 @@ public class CompactionScheduleTaskManager implements IService { repairTaskStatus.compareAndSet(RepairTaskStatus.RUNNING, RepairTaskStatus.STOPPING); } - public void abortRepairTask() { + public void abortRepairTask() throws InterruptedException { if (repairTaskStatus.get() == RepairTaskStatus.STOPPED) { return; } @@ -299,6 +301,8 @@ public class CompactionScheduleTaskManager implements IService { } try { task.get(); + } catch (InterruptedException e) { + throw e; } catch (Exception ignored) { } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskWorker.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskWorker.java index 220a4835955..3469a0a6dec 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskWorker.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskWorker.java @@ -48,6 +48,7 @@ public class CompactionScheduleTaskWorker implements Callable<Void> { } @Override + @SuppressWarnings("java:S2142") public Void call() { while (true) { try { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/TTLScheduleTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/TTLScheduleTask.java index ec1ec870b6f..f7341876ec5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/TTLScheduleTask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/TTLScheduleTask.java @@ -48,6 +48,7 @@ public class TTLScheduleTask implements Callable<Void> { } @Override + @SuppressWarnings("java:S2142") public Void call() throws Exception { while (true) { try { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/PrintUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/PrintUtil.java index 7df1bffc014..bbe5133fd2c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/PrintUtil.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/PrintUtil.java @@ -23,7 +23,7 @@ class PrintUtil { static String[] header_1 = {"", "Total", "Overlap", "Overlap/Total"}; static String[] header_2 = {"", "Total", "Sequence", "UnSequence", "UnSequence/Total"}; - static long MSize = 1024 * 1024; + static long MSize = 1024 * 1024L; public static void printOneStatistics(OverlapStatistic overlapStatistic, String label) { System.out.println(); 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 a95b19c2dc3..cd71d1b7dac 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 @@ -41,7 +41,8 @@ public class TimePartitionProcessTask { this.timePartitionFiles = timePartitionFiles; } - public OverlapStatistic processTimePartition(SequenceFileSubTaskThreadExecutor fileTaskExecutor) { + public OverlapStatistic processTimePartition(SequenceFileSubTaskThreadExecutor fileTaskExecutor) + throws InterruptedException { long startTime = System.currentTimeMillis(); UnseqSpaceStatistics unseqSpaceStatistics = buildUnseqSpaceStatistics(timePartitionFiles.right); @@ -120,7 +121,8 @@ public class TimePartitionProcessTask { public OverlapStatistic processSequenceSpaceAsync( SequenceFileSubTaskThreadExecutor executor, UnseqSpaceStatistics unseqSpaceStatistics, - List<String> seqFiles) { + List<String> seqFiles) + throws InterruptedException { long startTime = System.currentTimeMillis(); OverlapStatistic overlapStatistic = new OverlapStatistic(); List<Future<SequenceFileTaskSummary>> futures = new ArrayList<>(); @@ -131,6 +133,8 @@ public class TimePartitionProcessTask { try { SequenceFileTaskSummary sequenceFileTaskSummary = future.get(); overlapStatistic.mergeSingleSequenceFileTaskResult(sequenceFileTaskSummary); + } catch (InterruptedException e) { + throw e; } catch (Exception e) { e.printStackTrace(); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/TimePartitionProcessWorker.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/TimePartitionProcessWorker.java index a8e621a7c36..29ac17a67f2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/TimePartitionProcessWorker.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tool/TimePartitionProcessWorker.java @@ -43,7 +43,14 @@ public class TimePartitionProcessWorker { new SequenceFileSubTaskThreadExecutor(OverlapStatisticTool.subTaskNum); while (!workerTaskList.isEmpty()) { TimePartitionProcessTask task = workerTaskList.remove(0); - OverlapStatistic partialRet = task.processTimePartition(fileProcessTaskExecutor); + OverlapStatistic partialRet = null; + try { + partialRet = task.processTimePartition(fileProcessTaskExecutor); + } catch (InterruptedException e) { + fileProcessTaskExecutor.shutdown(); + Thread.currentThread().interrupt(); + return; + } workerResults.add(partialRet); } latch.countDown(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/ModificationFile.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/ModificationFile.java index ce60cdba0d2..6489c7e5299 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/ModificationFile.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/ModificationFile.java @@ -63,7 +63,7 @@ public class ModificationFile implements AutoCloseable { private String filePath; private final SecureRandom random = new SecureRandom(); - private static final long COMPACT_THRESHOLD = 1024 * 1024; + private static final long COMPACT_THRESHOLD = 1024 * 1024L; private boolean hasCompacted = false; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/io/LocalTextModificationAccessor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/io/LocalTextModificationAccessor.java index cd80984fa81..0f33d0c59a4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/io/LocalTextModificationAccessor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/io/LocalTextModificationAccessor.java @@ -168,6 +168,7 @@ public class LocalTextModificationAccessor } @Override + @SuppressWarnings("java:S2259") public void writeWithOutSync(Modification mod) throws IOException { if (fos == null) { fos = new FileOutputStream(filePath, true); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNode.java index e9fbfb8525c..33245ebf9e5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNode.java @@ -554,6 +554,7 @@ public class WALNode implements IWALNode { } // synchronize memTable to make sure snapshot is made before memTable flush operation + @SuppressWarnings("java:S2445") private void snapshotMemTable(DataRegion dataRegion, File tsFile, MemTableInfo memTableInfo) { IMemTable memTable = memTableInfo.getMemTable(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/UnsealedTsFileRecoverPerformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/UnsealedTsFileRecoverPerformer.java index 85d6ccba6f3..71ff9417e91 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/UnsealedTsFileRecoverPerformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/UnsealedTsFileRecoverPerformer.java @@ -220,7 +220,9 @@ public class UnsealedTsFileRecoverPerformer extends AbstractTsFileRecoverPerform throw new RuntimeException("Unsupported type " + walEntry.getType()); } } catch (Exception e) { - logger.warn("meet error when redo wal of {}", tsFileResource.getTsFile(), e); + if (tsFileResource != null) { + logger.warn("meet error when redo wal of {}", tsFileResource.getTsFile(), e); + } } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/DirectoryChecker.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/DirectoryChecker.java index 3d4ec251331..65b4fdfe0bd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/DirectoryChecker.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/DirectoryChecker.java @@ -50,6 +50,7 @@ public class DirectoryChecker { return DirectoryCheckerHolder.INSTANCE; } + @SuppressWarnings("java:S2095") // will be closed by randomAccessFileList public void registerDirectory(File dir) throws ConfigurationException, IOException { if (dir.exists() && !dir.isDirectory()) { throw new ConfigurationException( @@ -77,6 +78,7 @@ public class DirectoryChecker { } // File is already locked other virtual machine if (lock == null) { + randomAccessFile.close(); throw new ConfigurationException( String.format( "Conflict is detected in directory %s, which may be being used by another IoTDB (ProcessId=%s). Please check configuration and restart.", diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/subscription/broker/SubscriptionPrefetchingQueue.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/subscription/broker/SubscriptionPrefetchingQueue.java index 909d3dc53a7..83549212ed6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/subscription/broker/SubscriptionPrefetchingQueue.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/subscription/broker/SubscriptionPrefetchingQueue.java @@ -389,30 +389,26 @@ public abstract class SubscriptionPrefetchingQueue { /////////////////////////////// stringify /////////////////////////////// protected Map<String, String> coreReportMessage() { - return new HashMap<String, String>() { - { - put("brokerId", brokerId); - put("topicName", topicName); - put("size of uncommittedEvents", String.valueOf(uncommittedEvents.size())); - put("subscriptionCommitIdGenerator", subscriptionCommitIdGenerator.toString()); - put("isCompleted", String.valueOf(isCompleted)); - put("isClosed", String.valueOf(isClosed)); - } - }; + Map<String, String> result = new HashMap<>(6); + result.put("brokerId", brokerId); + result.put("topicName", topicName); + result.put("size of uncommittedEvents", String.valueOf(uncommittedEvents.size())); + result.put("subscriptionCommitIdGenerator", subscriptionCommitIdGenerator.toString()); + result.put("isCompleted", String.valueOf(isCompleted)); + result.put("isClosed", String.valueOf(isClosed)); + return result; } protected Map<String, String> allReportMessage() { - return new HashMap<String, String>() { - { - put("brokerId", brokerId); - put("topicName", topicName); - put("size of inputPendingQueue", String.valueOf(inputPendingQueue.size())); - put("size of prefetchingQueue", String.valueOf(prefetchingQueue.size())); - put("uncommittedEvents", uncommittedEvents.toString()); - put("subscriptionCommitIdGenerator", subscriptionCommitIdGenerator.toString()); - put("isCompleted", String.valueOf(isCompleted)); - put("isClosed", String.valueOf(isClosed)); - } - }; + Map<String, String> result = new HashMap<>(8); + result.put("brokerId", brokerId); + result.put("topicName", topicName); + result.put("size of inputPendingQueue", String.valueOf(inputPendingQueue.size())); + result.put("size of prefetchingQueue", String.valueOf(prefetchingQueue.size())); + result.put("uncommittedEvents", uncommittedEvents.toString()); + result.put("subscriptionCommitIdGenerator", subscriptionCommitIdGenerator.toString()); + result.put("isCompleted", String.valueOf(isCompleted)); + result.put("isClosed", String.valueOf(isClosed)); + return result; } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/schema/PBTreeFileSketchTool.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/schema/PBTreeFileSketchTool.java index 8e27f9fe2b6..2af052c322d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/schema/PBTreeFileSketchTool.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/schema/PBTreeFileSketchTool.java @@ -147,14 +147,15 @@ public class PBTreeFileSketchTool { @SuppressWarnings("squid:S106") public static void sketchFile(String inputFile, String outputFile) throws IOException, MetadataException { - PrintWriter pw = new PrintWriter(new FileWriter(outputFile, false)); - ISchemaFile sf = SchemaFile.loadSchemaFile(SystemFileFactory.INSTANCE.getFile(inputFile)); - try { + ISchemaFile sf = null; + try (PrintWriter pw = new PrintWriter(new FileWriter(outputFile, false))) { + sf = SchemaFile.loadSchemaFile(SystemFileFactory.INSTANCE.getFile(inputFile)); String res = ((SchemaFile) sf).inspect(pw); System.out.println(res); } finally { - sf.close(); - pw.close(); + if (sf != null) { + sf.close(); + } } } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionAliasAndTagTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionAliasAndTagTest.java index 0d2dcd674a0..c6e283e11b6 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionAliasAndTagTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionAliasAndTagTest.java @@ -42,6 +42,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +@SuppressWarnings("java:S5783") public class SchemaRegionAliasAndTagTest extends AbstractSchemaRegionTest { private static final Logger logger = LoggerFactory.getLogger(SchemaRegionAliasAndTagTest.class); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionRecoverTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionRecoverTest.java index 802e5e4fb5a..a8b92828bc9 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionRecoverTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionRecoverTest.java @@ -529,7 +529,7 @@ public class SettleCompactionRecoverTest extends AbstractCompactionTest { // handle exception, delete all_deleted files task.recoverFullyDirtyFiles(); try { - task.recoverTaskInfoFromLogFile(); + task.recoverSettleTaskInfoFromLogFile(); Assert.fail(); } catch (Exception e) { // do nothing @@ -1102,7 +1102,7 @@ public class SettleCompactionRecoverTest extends AbstractCompactionTest { task.recoverFullyDirtyFiles(); try { - task.recoverTaskInfoFromLogFile(); + task.recoverSettleTaskInfoFromLogFile(); Assert.fail(); } catch (Exception e) { // do nothing diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/WALFileTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/WALFileTest.java index a15cc27fa26..8a13bce60aa 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/WALFileTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/WALFileTest.java @@ -163,12 +163,12 @@ public class WALFileTest { @Test public void testReadMetadataFromBrokenFile() throws IOException { ILogWriter walWriter = new WALWriter(walFile); - assertThrows( - IOException.class, - () -> WALMetaData.readFromWALFile(walFile, FileChannel.open(walFile.toPath()))); + final FileChannel fileChannel1 = FileChannel.open(walFile.toPath()); + assertThrows(IOException.class, () -> WALMetaData.readFromWALFile(walFile, fileChannel1)); walWriter.close(); - WALMetaData walMetaData = - WALMetaData.readFromWALFile(walFile, FileChannel.open(walFile.toPath())); + FileChannel fileChannel2 = FileChannel.open(walFile.toPath()); + WALMetaData walMetaData = WALMetaData.readFromWALFile(walFile, fileChannel2); + fileChannel2.close(); assertTrue(walMetaData.getMemTablesId().isEmpty()); } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/utils/WALInsertNodeCacheTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/utils/WALInsertNodeCacheTest.java index a001d4e1b9f..10a23d89bd3 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/utils/WALInsertNodeCacheTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/utils/WALInsertNodeCacheTest.java @@ -118,9 +118,7 @@ public class WALInsertNodeCacheTest { Thread getInsertNodeThread = new Thread( () -> { - try { - assertEquals(node1, cache.getInsertNode(position)); - } catch (Throwable e) { + if (!node1.equals(cache.getInsertNode(position))) { failure.set(true); } }); 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 225e0d2f063..45785f045b9 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 @@ -281,7 +281,7 @@ public class CommonConfig { // maximum number of Cluster Databases allowed private int databaseLimitThreshold = -1; - private long datanodeTokenTimeoutMS = 180 * 1000; // 3 minutes + private long datanodeTokenTimeoutMS = 180 * 1000L; // 3 minutes // timeseries and device limit private long seriesLimitThreshold = -1; diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/consensus/index/ProgressIndex.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/consensus/index/ProgressIndex.java index 7bbcedfc2db..c876af8f09f 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/consensus/index/ProgressIndex.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/consensus/index/ProgressIndex.java @@ -90,6 +90,11 @@ public abstract class ProgressIndex { return this.equals((ProgressIndex) obj); } + @Override + public int hashCode() { + return super.hashCode(); + } + /** * Define the isEqualOrAfter relation, A.isEqualOrAfter(B) if and only if each tuple member in A * is greater than or equal to B in the corresponding total order relation. diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/pipe/PipeRuntimeConnectorCriticalException.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/pipe/PipeRuntimeConnectorCriticalException.java index adbc31f5315..1cd37f50b56 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/pipe/PipeRuntimeConnectorCriticalException.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/pipe/PipeRuntimeConnectorCriticalException.java @@ -46,6 +46,11 @@ public class PipeRuntimeConnectorCriticalException extends PipeRuntimeCriticalEx && Objects.equals(getTimeStamp(), ((PipeRuntimeException) obj).getTimeStamp()); } + @Override + public int hashCode() { + return super.hashCode(); + } + @Override public void serialize(ByteBuffer byteBuffer) { PipeRuntimeExceptionType.CONNECTOR_CRITICAL_EXCEPTION.serialize(byteBuffer); diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/pipe/PipeRuntimeNonCriticalException.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/pipe/PipeRuntimeNonCriticalException.java index 50273016abc..dbd8bc18ff2 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/pipe/PipeRuntimeNonCriticalException.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/pipe/PipeRuntimeNonCriticalException.java @@ -46,6 +46,11 @@ public class PipeRuntimeNonCriticalException extends PipeRuntimeException { && Objects.equals(getTimeStamp(), ((PipeRuntimeException) obj).getTimeStamp()); } + @Override + public int hashCode() { + return super.hashCode(); + } + @Override public void serialize(ByteBuffer byteBuffer) { PipeRuntimeExceptionType.NON_CRITICAL_EXCEPTION.serialize(byteBuffer); diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/pipe/PipeRuntimeOutOfMemoryCriticalException.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/pipe/PipeRuntimeOutOfMemoryCriticalException.java index 240bb8a29f9..4691d24c6ec 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/pipe/PipeRuntimeOutOfMemoryCriticalException.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/pipe/PipeRuntimeOutOfMemoryCriticalException.java @@ -47,6 +47,11 @@ public class PipeRuntimeOutOfMemoryCriticalException extends PipeRuntimeCritical && Objects.equals(getTimeStamp(), ((PipeRuntimeException) obj).getTimeStamp()); } + @Override + public int hashCode() { + return super.hashCode(); + } + @Override public void serialize(ByteBuffer byteBuffer) { PipeRuntimeExceptionType.OUT_OF_MEMORY_CRITICAL_EXCEPTION.serialize(byteBuffer); diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/limiter/PipeEndPointRateLimiter.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/limiter/PipeEndPointRateLimiter.java index f89c5b4cec8..c55e2391e9b 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/limiter/PipeEndPointRateLimiter.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/limiter/PipeEndPointRateLimiter.java @@ -33,6 +33,7 @@ import java.util.concurrent.TimeUnit; public class PipeEndPointRateLimiter { // The task agent is used to check if the pipe is still alive + @SuppressWarnings("java:S3077") private static volatile PipeTaskAgent taskAgent; private final String pipeName; diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/protocol/IoTDBAirGapConnector.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/protocol/IoTDBAirGapConnector.java index 5d8e87fbd87..8972fb424b3 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/protocol/IoTDBAirGapConnector.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/protocol/IoTDBAirGapConnector.java @@ -145,6 +145,7 @@ public abstract class IoTDBAirGapConnector extends IoTDBConnector { } @Override + @SuppressWarnings("java:S2095") public void handshake() throws Exception { for (int i = 0; i < sockets.size(); i++) { if (Boolean.TRUE.equals(isSocketAlive.get(i))) { diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/progress/PipeEventCommitter.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/progress/PipeEventCommitter.java index 559e53ee15b..2359c442cd3 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/progress/PipeEventCommitter.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/progress/PipeEventCommitter.java @@ -60,6 +60,7 @@ public class PipeEventCommitter { return commitIdGenerator.incrementAndGet(); } + @SuppressWarnings("java:S899") public synchronized void commit(final EnrichedEvent event) { commitQueue.offer(event); diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/task/subtask/PipeAbstractConnectorSubtask.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/task/subtask/PipeAbstractConnectorSubtask.java index e6a2399f7e8..25ddb438806 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/task/subtask/PipeAbstractConnectorSubtask.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/task/subtask/PipeAbstractConnectorSubtask.java @@ -50,6 +50,7 @@ public abstract class PipeAbstractConnectorSubtask extends PipeReportableSubtask protected volatile boolean isSubmitted = false; // For cleaning up the last event when the pipe is dropped + @SuppressWarnings("java:S3077") protected volatile Event lastExceptionEvent; protected PipeAbstractConnectorSubtask( diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/GcTimeAlerter.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/GcTimeAlerter.java index e4396c09b11..e501541be14 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/GcTimeAlerter.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/GcTimeAlerter.java @@ -26,7 +26,9 @@ import java.text.SimpleDateFormat; import java.util.Date; public class GcTimeAlerter implements JvmGcMonitorMetrics.GcTimeAlertHandler { + @SuppressWarnings("java:S2885") private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + private static final Logger logger = LoggerFactory.getLogger(GcTimeAlerter.class); /** diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAbs.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAbs.java index b57c32df531..24dc7021bad 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAbs.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAbs.java @@ -34,6 +34,7 @@ import org.apache.tsfile.block.column.ColumnBuilder; import java.io.IOException; +@SuppressWarnings("java:S2177") public class UDTFAbs extends UDTFMath { @Override diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dlearn/UDTFAR.java b/library-udf/src/main/java/org/apache/iotdb/library/dlearn/UDTFAR.java index ab9ae58719f..8e5e5096e17 100644 --- a/library-udf/src/main/java/org/apache/iotdb/library/dlearn/UDTFAR.java +++ b/library-udf/src/main/java/org/apache/iotdb/library/dlearn/UDTFAR.java @@ -57,6 +57,7 @@ public class UDTFAR implements UDTF { } @Override + @SuppressWarnings("javabugs:S6466") public void terminate(PointCollector collector) throws Exception { int length = timeWindow.size(); if (length <= this.p) { diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDTFPtnSym.java b/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDTFPtnSym.java index b4e886e8939..e3642dd1ead 100644 --- a/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDTFPtnSym.java +++ b/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDTFPtnSym.java @@ -64,6 +64,7 @@ public class UDTFPtnSym implements UDTF { } @Override + @SuppressWarnings("javabugs:S6466") public void transform(RowWindow rowWindow, PointCollector collector) throws Exception { if (rowWindow.windowSize() < window) { // skip too short series return; diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSample.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSample.java index 5f1545c853e..2d39eef3152 100644 --- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSample.java +++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSample.java @@ -122,6 +122,7 @@ public class UDTFSample implements UDTF { } @Override + @SuppressWarnings("javabugs:S6320") public void transform(RowWindow rowWindow, PointCollector collector) throws Exception { // equal-distance sampling int n = rowWindow.windowSize();
