You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2023/05/29 03:57:08 UTC

[iotdb] branch auto_compressor updated: fix uncompress length

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

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


The following commit(s) were added to refs/heads/auto_compressor by this push:
     new 3c147facd77 fix uncompress length
3c147facd77 is described below

commit 3c147facd77b8b92d85154bb970b761cd5cdb865
Author: Tian Jiang <jt...@163.com>
AuthorDate: Mon May 29 11:59:58 2023 +0800

    fix uncompress length
---
 .../iotdb/tsfile/compress/auto/AutoUncompressor.java     | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/compress/auto/AutoUncompressor.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/compress/auto/AutoUncompressor.java
index 037ffedabd7..df09bd74f86 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/compress/auto/AutoUncompressor.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/compress/auto/AutoUncompressor.java
@@ -31,7 +31,7 @@ public class AutoUncompressor implements IUnCompressor {
     byte realType = array[offset + length - 1];
     IUnCompressor unCompressor = IUnCompressor.getUnCompressor(
         CompressionType.deserialize(realType));
-    return unCompressor.getUncompressedLength(array, offset, length);
+    return unCompressor.getUncompressedLength(array, offset, length - 1);
   }
 
   @Override
@@ -39,7 +39,9 @@ public class AutoUncompressor implements IUnCompressor {
     byte realType = buffer.array()[buffer.position() + buffer.remaining() - 1];
     IUnCompressor unCompressor = IUnCompressor.getUnCompressor(
         CompressionType.deserialize(realType));
-    return unCompressor.getUncompressedLength(buffer);
+    ByteBuffer slice = buffer.slice();
+    slice.limit(slice.limit() - 1);
+    return unCompressor.getUncompressedLength(slice);
   }
 
   @Override
@@ -47,7 +49,9 @@ public class AutoUncompressor implements IUnCompressor {
     byte realType = byteArray[byteArray.length - 1];
     IUnCompressor unCompressor = IUnCompressor.getUnCompressor(
         CompressionType.deserialize(realType));
-    return unCompressor.uncompress(byteArray);
+    byte[] realData = new byte[byteArray.length - 1];
+    System.arraycopy(byteArray, 0, realData, 0, byteArray.length - 1);
+    return unCompressor.uncompress(realData);
   }
 
   @Override
@@ -56,7 +60,7 @@ public class AutoUncompressor implements IUnCompressor {
     byte realType = byteArray[offset + length - 1];
     IUnCompressor unCompressor = IUnCompressor.getUnCompressor(
         CompressionType.deserialize(realType));
-    return unCompressor.uncompress(byteArray, offset, length, output, outOffset);
+    return unCompressor.uncompress(byteArray, offset, length - 1, output, outOffset);
   }
 
   @Override
@@ -64,7 +68,9 @@ public class AutoUncompressor implements IUnCompressor {
     byte realType = compressed.array()[compressed.position() + compressed.remaining() - 1];
     IUnCompressor unCompressor = IUnCompressor.getUnCompressor(
         CompressionType.deserialize(realType));
-    return unCompressor.uncompress(compressed, uncompressed);
+    ByteBuffer slice = compressed.slice();
+    slice.limit(slice.limit() - 1);
+    return unCompressor.uncompress(slice, uncompressed);
   }
 
   @Override