Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Creating a ListRecord instance with more than 16581375 = LEVEL_SIZE * LEVEL_SIZE * LEVEL_SIZE = 255 * 255 * 255 entries results in a
java.lang.IllegalArgumentException at com.google.common.base.Preconditions.checkArgument(Preconditions.java:77) at org.apache.jackrabbit.oak.segment.ListRecord.<init>(ListRecord.java:43) at org.apache.jackrabbit.oak.segment.ListRecord.getEntry(ListRecord.java:67) at org.apache.jackrabbit.oak.segment.RecordTest.testLargeListRecord(RecordTest.java:152)
This is caused by an integer overflow in the constructor causing ListRecord.bucketSize to go negative.