Author: frm Date: Wed Aug 9 10:33:00 2017 New Revision: 1804503 URL: http://svn.apache.org/viewvc?rev=1804503&view=rev Log: OAK-6529 - Don't use Buffer.array() directly
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV1.java jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV2.java jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV1Test.java jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV2Test.java Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV1.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV1.java?rev=1804503&r1=1804502&r2=1804503&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV1.java (original) +++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV1.java Wed Aug 9 10:33:00 2017 @@ -57,10 +57,11 @@ class IndexLoaderV1 { } ByteBuffer entries = reader.readAtEnd(IndexV1.FOOTER_SIZE + count * IndexEntryV1.SIZE, count * IndexEntryV1.SIZE); - entries.mark(); CRC32 checksum = new CRC32(); - checksum.update(entries.array(), entries.position(), entries.remaining()); + entries.mark(); + checksum.update(entries); + entries.reset(); if (crc32 != (int) checksum.getValue()) { throw new InvalidIndexException("Invalid checksum"); } @@ -68,6 +69,7 @@ class IndexLoaderV1 { long lastMsb = Long.MIN_VALUE; long lastLsb = Long.MIN_VALUE; byte[] entry = new byte[IndexEntryV1.SIZE]; + entries.mark(); for (int i = 0; i < count; i++) { entries.get(entry); @@ -96,7 +98,6 @@ class IndexLoaderV1 { lastMsb = msb; lastLsb = lsb; } - entries.reset(); return new IndexV1(entries); Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV2.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV2.java?rev=1804503&r1=1804502&r2=1804503&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV2.java (original) +++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV2.java Wed Aug 9 10:33:00 2017 @@ -57,10 +57,11 @@ class IndexLoaderV2 { } ByteBuffer entries = reader.readAtEnd(IndexV2.FOOTER_SIZE + count * IndexEntryV2.SIZE, count * IndexEntryV2.SIZE); - entries.mark(); CRC32 checksum = new CRC32(); - checksum.update(entries.array(), entries.position(), entries.remaining()); + entries.mark(); + checksum.update(entries); + entries.reset(); if (crc32 != (int) checksum.getValue()) { throw new InvalidIndexException("Invalid checksum"); } @@ -68,6 +69,7 @@ class IndexLoaderV2 { long lastMsb = Long.MIN_VALUE; long lastLsb = Long.MIN_VALUE; byte[] entry = new byte[IndexEntryV2.SIZE]; + entries.mark(); for (int i = 0; i < count; i++) { entries.get(entry); @@ -96,7 +98,6 @@ class IndexLoaderV2 { lastMsb = msb; lastLsb = lsb; } - entries.reset(); return new IndexV2(entries); Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV1Test.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV1Test.java?rev=1804503&r1=1804502&r2=1804503&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV1Test.java (original) +++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV1Test.java Wed Aug 9 10:33:00 2017 @@ -193,7 +193,7 @@ public class IndexLoaderV1Test { duplicate.position(duplicate.limit() - IndexEntryV1.SIZE - IndexV1.FOOTER_SIZE); duplicate .putLong(0).putLong(0).putInt(1).putInt(1).putInt(0) - .putInt(0x807077E9) + .putInt(0xAA6B4A1A) .putInt(1) .putInt(2 * (IndexEntryV1.SIZE + IndexV1.FOOTER_SIZE)) .putInt(IndexLoaderV1.MAGIC); Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV2Test.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV2Test.java?rev=1804503&r1=1804502&r2=1804503&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV2Test.java (original) +++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV2Test.java Wed Aug 9 10:33:00 2017 @@ -193,7 +193,7 @@ public class IndexLoaderV2Test { duplicate.position(duplicate.limit() - IndexEntryV2.SIZE - IndexV2.FOOTER_SIZE); duplicate .putLong(0).putLong(0).putInt(1).putInt(1).putInt(0).putInt(0).put((byte) 0) - .putInt(0x7A7C3A8D) + .putInt(0x8B1B0C5) .putInt(1) .putInt(2 * (IndexEntryV2.SIZE + IndexV2.FOOTER_SIZE)) .putInt(IndexLoaderV2.MAGIC);