diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/TsFileLastReader.java b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/TsFileLastReader.java index f89b30df6..312b73dde 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/TsFileLastReader.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/TsFileLastReader.java @@ -305,7 +305,7 @@ private void init() throws IOException { @Override public void close() throws Exception { - if (asyncIO) { + if (asyncIO && asyncTask != null) { asyncTask.cancel(true); } sequenceReader.close(); diff --git a/java/tsfile/src/test/java/org/apache/tsfile/read/reader/TsFileLastReaderTest.java b/java/tsfile/src/test/java/org/apache/tsfile/read/reader/TsFileLastReaderTest.java index 40b1cc8f0..f04aeefbd 100644 --- a/java/tsfile/src/test/java/org/apache/tsfile/read/reader/TsFileLastReaderTest.java +++ b/java/tsfile/src/test/java/org/apache/tsfile/read/reader/TsFileLastReaderTest.java @@ -358,4 +358,10 @@ public void testManyRead() throws Exception { } file.delete(); } + + @Test + public void testCreateButNotRead() throws Exception { + createFile(10, 10, 10); + try (TsFileLastReader ignored = new TsFileLastReader(filePath)) {} + } }