diff --git a/java/tsfile/src/main/java/org/apache/tsfile/exception/read/FileVersionTooOldException.java b/java/tsfile/src/main/java/org/apache/tsfile/exception/read/FileVersionTooOldException.java index 2176f7ffc..ffa1b5f3b 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/exception/read/FileVersionTooOldException.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/exception/read/FileVersionTooOldException.java @@ -23,10 +23,10 @@ public class FileVersionTooOldException extends IOException { - public FileVersionTooOldException(byte currentVersion, byte minimumVersion) { + public FileVersionTooOldException(byte currentVersion, byte minimumVersion, byte maximumVersion) { super( String.format( - "The current version %d is too old, please at least upgrade to %d", - currentVersion, minimumVersion)); + "The current version %d is not supported. Currently supported versions are %d to %d.", + currentVersion, minimumVersion, maximumVersion)); } } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java b/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java index 033e3d044..4330a6004 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java @@ -285,8 +285,9 @@ private void configDeserializer() { } private void checkFileVersion() throws FileVersionTooOldException { - if (TSFileConfig.VERSION_NUMBER - fileVersion > 1) { - throw new FileVersionTooOldException(fileVersion, (byte) (TSFileConfig.VERSION_NUMBER - 1)); + if (fileVersion < TSFileConfig.VERSION_NUMBER_V3 || fileVersion > TSFileConfig.VERSION_NUMBER) { + throw new FileVersionTooOldException( + fileVersion, TSFileConfig.VERSION_NUMBER_V3, TSFileConfig.VERSION_NUMBER); } } diff --git a/java/tsfile/src/test/java/org/apache/tsfile/utils/TsFileUtilsTest.java b/java/tsfile/src/test/java/org/apache/tsfile/utils/TsFileUtilsTest.java index caf5401a9..b6e79fcdc 100644 --- a/java/tsfile/src/test/java/org/apache/tsfile/utils/TsFileUtilsTest.java +++ b/java/tsfile/src/test/java/org/apache/tsfile/utils/TsFileUtilsTest.java @@ -20,6 +20,7 @@ import org.apache.tsfile.common.conf.TSFileConfig; import org.apache.tsfile.constant.TestConstant; +import org.apache.tsfile.read.TsFileSequenceReader; import org.apache.tsfile.write.writer.LocalTsFileOutput; import org.apache.tsfile.write.writer.TsFileIOWriter; @@ -67,6 +68,9 @@ public void after() { @Test public void isTsFileCompleteTest() throws IOException { Assert.assertTrue(TsFileUtils.isTsFileComplete(new File(COMPLETE_FILE_PATH))); - Assert.assertFalse(TsFileUtils.isTsFileComplete(new File(INCOMPLETE_FILE_PATH))); + try (TsFileSequenceReader reader = new TsFileSequenceReader(INCOMPLETE_FILE_PATH)) { + Assert.fail(); + } catch (Exception ignored) { + } } }