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

jiangtian pushed a commit to branch dev/1.1
in repository https://gitbox.apache.org/repos/asf/tsfile.git


The following commit(s) were added to refs/heads/dev/1.1 by this push:
     new 05d0284c Don't print exception log when thread is interrupted (#386) 
(#639)
05d0284c is described below

commit 05d0284c69637f8ccc40e3464eaf0d11b32e82ca
Author: shuwenwei <[email protected]>
AuthorDate: Fri Nov 14 14:42:42 2025 +0800

    Don't print exception log when thread is interrupted (#386) (#639)
    
    * don't print exception log when thread is interrupted
    
    * modify DiskTSMIterator
---
 .../org/apache/tsfile/write/writer/TsFileIOWriter.java  | 13 ++++++++-----
 .../write/writer/tsmiterator/DiskTSMIterator.java       | 17 +++++++++--------
 2 files changed, 17 insertions(+), 13 deletions(-)

diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java 
b/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
index cc59fd20..1ea6fa0c 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
@@ -369,11 +369,7 @@ public class TsFileIOWriter implements AutoCloseable {
     // serialize the SEPARATOR of MetaData
     ReadWriteIOUtils.write(MetaMarker.SEPARATOR, out.wrapAsStream());
 
-    TSMIterator tsmIterator =
-        hasChunkMetadataInDisk
-            ? TSMIterator.getTSMIteratorInDisk(
-                chunkMetadataTempFile, chunkGroupMetadataList, 
endPosInCMTForDevice)
-            : TSMIterator.getTSMIteratorInMemory(chunkGroupMetadataList);
+    TSMIterator tsmIterator = getTSMIterator();
     Map<IDeviceID, MetadataIndexNode> deviceMetadataIndexMap = new TreeMap<>();
     Queue<MetadataIndexNode> measurementMetadataIndexQueue = new 
ArrayDeque<>();
     IDeviceID currentDevice = null;
@@ -451,6 +447,13 @@ public class TsFileIOWriter implements AutoCloseable {
     ReadWriteIOUtils.write(size, out.wrapAsStream());
   }
 
+  protected TSMIterator getTSMIterator() throws IOException {
+    return hasChunkMetadataInDisk
+        ? TSMIterator.getTSMIteratorInDisk(
+            chunkMetadataTempFile, chunkGroupMetadataList, 
endPosInCMTForDevice)
+        : TSMIterator.getTSMIteratorInMemory(chunkGroupMetadataList);
+  }
+
   /**
    * get the length of normal OutputStream.
    *
diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/write/writer/tsmiterator/DiskTSMIterator.java
 
b/java/tsfile/src/main/java/org/apache/tsfile/write/writer/tsmiterator/DiskTSMIterator.java
index 32a32340..f83ea947 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/write/writer/tsmiterator/DiskTSMIterator.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/write/writer/tsmiterator/DiskTSMIterator.java
@@ -26,6 +26,7 @@ import org.apache.tsfile.file.metadata.IChunkMetadata;
 import org.apache.tsfile.file.metadata.TimeseriesMetadata;
 import org.apache.tsfile.read.common.Path;
 import org.apache.tsfile.read.reader.LocalTsFileInput;
+import org.apache.tsfile.read.reader.TsFileInput;
 import org.apache.tsfile.utils.Pair;
 import org.apache.tsfile.utils.ReadWriteIOUtils;
 
@@ -49,8 +50,7 @@ public class DiskTSMIterator extends TSMIterator {
   private static final Logger LOG = 
LoggerFactory.getLogger(DiskTSMIterator.class);
 
   private LinkedList<Long> endPosForEachDevice;
-  private File cmtFile;
-  private LocalTsFileInput input;
+  protected TsFileInput input;
   private long fileLength = 0;
   private long currentPos = 0;
   private long nextEndPosForDevice = 0;
@@ -63,7 +63,6 @@ public class DiskTSMIterator extends TSMIterator {
       LinkedList<Long> endPosForEachDevice)
       throws IOException {
     super(chunkGroupMetadataList);
-    this.cmtFile = cmtFile;
     this.endPosForEachDevice = endPosForEachDevice;
     this.input = new LocalTsFileInput(cmtFile.toPath());
     this.fileLength = cmtFile.length();
@@ -76,22 +75,24 @@ public class DiskTSMIterator extends TSMIterator {
   }
 
   @Override
-  public Pair<Path, TimeseriesMetadata> next() {
+  public Pair<Path, TimeseriesMetadata> next() throws IOException {
     try {
       if (remainsInFile) {
         // deserialize from file
-        return getTimeSerisMetadataFromFile();
+        return getTimeSeriesMetadataFromFile();
       } else {
         // get from memory iterator
         return super.next();
       }
     } catch (IOException e) {
-      LOG.error("Meets IOException when reading timeseries metadata from 
disk", e);
-      return null;
+      if (!Thread.currentThread().isInterrupted()) {
+        LOG.error("Meets IOException when reading timeseries metadata from 
disk", e);
+      }
+      throw e;
     }
   }
 
-  private Pair<Path, TimeseriesMetadata> getTimeSerisMetadataFromFile() throws 
IOException {
+  private Pair<Path, TimeseriesMetadata> getTimeSeriesMetadataFromFile() 
throws IOException {
     if (currentPos == nextEndPosForDevice) {
       // deserialize the current device name
       currentDevice = ReadWriteIOUtils.readString(input.wrapAsInputStream());

Reply via email to