From 016366cdd9f6da517d7ccb981fd46184161722b0 Mon Sep 17 00:00:00 2001 From: Stan Rosenberg Date: Sat, 23 Feb 2013 16:40:34 -0500 Subject: [PATCH 1/2] fix for issue #8 --- .../src/main/java/org/apache/trevni/ColumnOutputBuffer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 = From ecda072ae14cce01d9f15cb9f462a40872b2b0f8 Mon Sep 17 00:00:00 2001 From: Stan Rosenberg Date: Sat, 23 Feb 2013 16:41:30 -0500 Subject: [PATCH 2/2] consider all combinations; e.g., null,crc32 exposes the bug described in issue #8 --- .../core/src/test/java/org/apache/trevni/TestColumnFile.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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); }