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 {

Reply via email to