This is an automated email from the ASF dual-hosted git repository. Caideyipi pushed a commit to branch fix-load-sonar-comments in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit c96ee4d662531cf93d64a48da8c59ee7eae7f0ba Author: Caideyipi <[email protected]> AuthorDate: Tue Jun 9 16:10:42 2026 +0800 Fix load Sonar warnings --- .../planner/plan/node/load/LoadSingleTsFileNode.java | 17 ++++++++++++----- .../plan/scheduler/load/LoadTsFileScheduler.java | 13 +++++++------ .../load/active/ActiveLoadTsFileLoader.java | 15 ++++++++------- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadSingleTsFileNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadSingleTsFileNode.java index be29fabe367..fd8afe3f9ec 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadSingleTsFileNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadSingleTsFileNode.java @@ -49,7 +49,9 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.NoSuchElementException; import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.function.Function; @@ -88,7 +90,6 @@ public class LoadSingleTsFileNode extends WritePlanNode { return resource.getDevices().isEmpty(); } - @SuppressWarnings("OptionalGetWithoutIsPresent") public boolean needDecodeTsFile( Function<List<Pair<IDeviceID, TTimePartitionSlot>>, List<TRegionReplicaSet>> partitionFetcher) { @@ -100,10 +101,16 @@ public class LoadSingleTsFileNode extends WritePlanNode { new ArrayList<>(resource.getDevices().size() << 1); for (final IDeviceID device : resource.getDevices()) { // iterating the index, must present - final TTimePartitionSlot startSlot = - TimePartitionUtils.getTimePartitionSlot(resource.getStartTime(device).get()); - final TTimePartitionSlot endSlot = - TimePartitionUtils.getTimePartitionSlot(resource.getEndTime(device).get()); + final Optional<Long> startTime = resource.getStartTime(device); + if (!startTime.isPresent()) { + throw new NoSuchElementException("No value present"); + } + final Optional<Long> endTime = resource.getEndTime(device); + if (!endTime.isPresent()) { + throw new NoSuchElementException("No value present"); + } + final TTimePartitionSlot startSlot = TimePartitionUtils.getTimePartitionSlot(startTime.get()); + final TTimePartitionSlot endSlot = TimePartitionUtils.getTimePartitionSlot(endTime.get()); slotList.add(new Pair<>(device, startSlot)); if (!startSlot.equals(endSlot)) { slotList.add(new Pair<>(device, endSlot)); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/load/LoadTsFileScheduler.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/load/LoadTsFileScheduler.java index 6ca3164a3e1..5c32c43ae56 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/load/LoadTsFileScheduler.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/load/LoadTsFileScheduler.java @@ -791,12 +791,13 @@ public class LoadTsFileScheduler implements IScheduler { final TTimePartitionSlot timePartitionSlot = chunkData.getTimePartitionSlot(); final Map<TTimePartitionSlot, Integer> slotIndexes = partitionSlotIndexes.computeIfAbsent(device, key -> new HashMap<>()); - Integer partitionSlotIndex = slotIndexes.get(timePartitionSlot); - if (partitionSlotIndex == null) { - partitionSlotIndex = partitionSlotList.size(); - slotIndexes.put(timePartitionSlot, partitionSlotIndex); - partitionSlotList.add(new Pair<>(device, timePartitionSlot)); - } + final int partitionSlotIndex = + slotIndexes.computeIfAbsent( + timePartitionSlot, + slot -> { + partitionSlotList.add(new Pair<>(device, slot)); + return partitionSlotList.size() - 1; + }); chunkPartitionIndexes[i] = partitionSlotIndex; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/active/ActiveLoadTsFileLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/active/ActiveLoadTsFileLoader.java index 13ec94186b7..7d197098301 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/active/ActiveLoadTsFileLoader.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/active/ActiveLoadTsFileLoader.java @@ -172,24 +172,25 @@ public class ActiveLoadTsFileLoader { if (!loadEntry.isPresent()) { return; } + final ActiveLoadPendingQueue.ActiveLoadEntry activeLoadEntry = loadEntry.get(); try { - final TSStatus result = loadTsFile(loadEntry.get(), session); + final TSStatus result = loadTsFile(activeLoadEntry, session); if (result.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode() || result.getCode() == TSStatusCode.REDIRECTION_RECOMMEND.getStatusCode()) { LOGGER.info( "Successfully auto load tsfile {} (isGeneratedByPipe = {})", - loadEntry.get().getFile(), - loadEntry.get().isGeneratedByPipe()); + activeLoadEntry.getFile(), + activeLoadEntry.isGeneratedByPipe()); } else { - handleLoadFailure(loadEntry.get(), result); + handleLoadFailure(activeLoadEntry, result); } } catch (final FileNotFoundException e) { - handleFileNotFoundException(loadEntry.get()); + handleFileNotFoundException(activeLoadEntry); } catch (final Exception e) { - handleOtherException(loadEntry.get(), e); + handleOtherException(activeLoadEntry, e); } finally { - pendingQueue.removeFromLoading(loadEntry.get().getFile()); + pendingQueue.removeFromLoading(activeLoadEntry.getFile()); } } } finally {
