diff --git a/java/core/src/main/java/org/apache/trevni/ColumnOutputBuffer.java b/java/core/src/main/java/org/apache/trevni/ColumnOutputBuffer.java index 2a7a43d..670a72d 100644 --- a/java/core/src/main/java/org/apache/trevni/ColumnOutputBuffer.java +++ b/java/core/src/main/java/org/apache/trevni/ColumnOutputBuffer.java @@ -73,6 +73,7 @@ public void endRow() throws IOException { private void flushBuffer() throws IOException { if (rowCount == 0) return; ByteBuffer raw = buffer.asByteBuffer(); + ByteBuffer checksumBuf = checksum.compute(raw); ByteBuffer c = codec.compress(raw); blockDescriptors.add(new BlockDescriptor(rowCount, @@ -81,7 +82,7 @@ private void flushBuffer() throws IOException { ByteBuffer data = ByteBuffer.allocate(c.remaining() + checksum.size()); data.put(c); - data.put(checksum.compute(raw)); + data.put(checksumBuf); blockData.add(data.array()); int sizeIncrement = diff --git a/java/core/src/test/java/org/apache/trevni/TestColumnFile.java b/java/core/src/test/java/org/apache/trevni/TestColumnFile.java index 68b7b61..922b27e 100644 --- a/java/core/src/test/java/org/apache/trevni/TestColumnFile.java +++ b/java/core/src/test/java/org/apache/trevni/TestColumnFile.java @@ -50,8 +50,11 @@ public TestColumnFile(String codec, String checksum) { @Parameters public static Collection codecs() { Object[][] data = new Object[][] {{"null", "null"}, + {"null", "crc32"}, {"snappy", "crc32"}, - {"deflate", "crc32"}}; + {"snappy", "null"}, + {"deflate", "crc32"}, + {"deflate", "null"}}; return Arrays.asList(data); }