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

haonan pushed a commit to branch fix_NewTsFileV2
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 24218e38c07698b2f208b8c56d685e11e9343fca
Author: HTHou <[email protected]>
AuthorDate: Mon Feb 1 10:40:47 2021 +0800

    change the way of checking page
---
 .../org/apache/iotdb/db/tools/upgrade/TsFileOnlineUpgradeTool.java | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/tools/upgrade/TsFileOnlineUpgradeTool.java
 
b/server/src/main/java/org/apache/iotdb/db/tools/upgrade/TsFileOnlineUpgradeTool.java
index adbb22e..e5b9091 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/tools/upgrade/TsFileOnlineUpgradeTool.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/tools/upgrade/TsFileOnlineUpgradeTool.java
@@ -158,7 +158,8 @@ public class TsFileOnlineUpgradeTool implements 
AutoCloseable {
             List<PageHeader> pageHeadersInChunk = new ArrayList<>();
             List<ByteBuffer> dataInChunk = new ArrayList<>();
             List<Boolean> needToDecodeInfo = new ArrayList<>();
-            for (int j = 0; j < header.getNumOfPages(); j++) {
+            int dataSize = header.getDataSize();
+            while (dataSize > 0) {
               // a new Page
               PageHeader pageHeader = reader.readPageHeader(dataType);
               boolean needToDecode = 
@@ -169,6 +170,10 @@ public class TsFileOnlineUpgradeTool implements 
AutoCloseable {
                   : reader.readPage(pageHeader, header.getCompressionType());
               pageHeadersInChunk.add(pageHeader);
               dataInChunk.add(pageData);
+              dataSize -= Integer.BYTES * 2 // the bytes of uncompressedSize 
and compressedSize
+                  - pageHeader.getStatistics().getSerializedSize()
+                  - pageHeader.getCompressedSize();
+
             }
             pageHeadersInChunkGroup.add(pageHeadersInChunk);
             pageDataInChunkGroup.add(dataInChunk);

Reply via email to