You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2020/02/28 14:27:20 UTC

[lucene-solr] 01/02: LUCENE-9246: Remove `dOff` argument from `LZ4#decompress`. (#1283)

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

jpountz pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 05830b463b6e4abe7cc58df146268e5db9adc0c9
Author: Adrien Grand <jp...@gmail.com>
AuthorDate: Fri Feb 28 11:26:56 2020 +0100

    LUCENE-9246: Remove `dOff` argument from `LZ4#decompress`. (#1283)
    
    It is always set to 0 at call sites.
---
 .../org/apache/lucene/codecs/blocktree/CompressionAlgorithm.java   | 2 +-
 .../java/org/apache/lucene/codecs/compressing/CompressionMode.java | 2 +-
 .../apache/lucene/codecs/lucene80/Lucene80DocValuesProducer.java   | 2 +-
 lucene/core/src/java/org/apache/lucene/util/compress/LZ4.java      | 3 ++-
 .../core/src/test/org/apache/lucene/util/compress/LZ4TestCase.java | 7 +++++++
 5 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/lucene/core/src/java/org/apache/lucene/codecs/blocktree/CompressionAlgorithm.java b/lucene/core/src/java/org/apache/lucene/codecs/blocktree/CompressionAlgorithm.java
index a98a3ca..98e2a42 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/blocktree/CompressionAlgorithm.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/blocktree/CompressionAlgorithm.java
@@ -48,7 +48,7 @@ enum CompressionAlgorithm {
 
     @Override
     void read(DataInput in, byte[] out, int len) throws IOException {
-      org.apache.lucene.util.compress.LZ4.decompress(in, len, out, 0);
+      org.apache.lucene.util.compress.LZ4.decompress(in, len, out);
     }
 
   };
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/compressing/CompressionMode.java b/lucene/core/src/java/org/apache/lucene/codecs/compressing/CompressionMode.java
index e5a3c4e..5850ec9 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/compressing/CompressionMode.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/compressing/CompressionMode.java
@@ -136,7 +136,7 @@ public abstract class CompressionMode {
       if (bytes.bytes.length < originalLength + 7) {
         bytes.bytes = new byte[ArrayUtil.oversize(originalLength + 7, 1)];
       }
-      final int decompressedLength = LZ4.decompress(in, offset + length, bytes.bytes, 0);
+      final int decompressedLength = LZ4.decompress(in, offset + length, bytes.bytes);
       if (decompressedLength > originalLength) {
         throw new CorruptIndexException("Corrupted: lengths mismatch: " + decompressedLength + " > " + originalLength, in);
       }
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/lucene80/Lucene80DocValuesProducer.java b/lucene/core/src/java/org/apache/lucene/codecs/lucene80/Lucene80DocValuesProducer.java
index 5e721e8..625ec94 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/lucene80/Lucene80DocValuesProducer.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/lucene80/Lucene80DocValuesProducer.java
@@ -832,7 +832,7 @@ final class Lucene80DocValuesProducer extends DocValuesProducer implements Close
         }
         
         assert uncompressedBlockLength <= uncompressedBlock.length;
-        LZ4.decompress(compressedData, uncompressedBlockLength, uncompressedBlock, 0);
+        LZ4.decompress(compressedData, uncompressedBlockLength, uncompressedBlock);
       }
       
       uncompressedBytesRef.offset = uncompressedDocStarts[docInBlockId];        
diff --git a/lucene/core/src/java/org/apache/lucene/util/compress/LZ4.java b/lucene/core/src/java/org/apache/lucene/util/compress/LZ4.java
index a14ff81..19021f5 100644
--- a/lucene/core/src/java/org/apache/lucene/util/compress/LZ4.java
+++ b/lucene/core/src/java/org/apache/lucene/util/compress/LZ4.java
@@ -83,7 +83,8 @@ public final class LZ4 {
    * enough to be able to hold <b>all</b> decompressed data (meaning that you
    * need to know the total decompressed length).
    */
-  public static int decompress(DataInput compressed, int decompressedLen, byte[] dest, int dOff) throws IOException {
+  public static int decompress(DataInput compressed, int decompressedLen, byte[] dest) throws IOException {
+    int dOff = 0;
     final int destEnd = dest.length;
 
     do {
diff --git a/lucene/core/src/test/org/apache/lucene/util/compress/LZ4TestCase.java b/lucene/core/src/test/org/apache/lucene/util/compress/LZ4TestCase.java
index 81f84e4..43f8c63 100644
--- a/lucene/core/src/test/org/apache/lucene/util/compress/LZ4TestCase.java
+++ b/lucene/core/src/test/org/apache/lucene/util/compress/LZ4TestCase.java
@@ -20,7 +20,9 @@ import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.util.Random;
 
+import org.apache.lucene.store.ByteArrayDataInput;
 import org.apache.lucene.store.ByteBuffersDataOutput;
+import org.apache.lucene.util.ArrayUtil;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.TestUtil;
 
@@ -130,6 +132,11 @@ public abstract class LZ4TestCase extends LuceneTestCase {
     ByteBuffersDataOutput out2 = new ByteBuffersDataOutput();
     LZ4.compress(data, offset, length, out2, hashTable);
     assertArrayEquals(compressed, out2.toArrayCopy());
+
+    // Now restore and compare bytes
+    byte[] restored = new byte[length + random().nextInt(10)];
+    LZ4.decompress(new ByteArrayDataInput(compressed), length, restored);
+    assertArrayEquals(ArrayUtil.copyOfSubArray(data, offset, offset+length), ArrayUtil.copyOfSubArray(restored, 0, length));
   }
 
   public void testEmpty() throws IOException {