fix uncompress length
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 037ffed..df09bd7 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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