Author: mduerig Date: Tue Aug 8 08:17:43 2017 New Revision: 1804379 URL: http://svn.apache.org/viewvc?rev=1804379&view=rev Log: OAK-6452: IllegalStateException: too much data for a segment during oak-upgrade from segment to segment-tar Improved logging
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java?rev=1804379&r1=1804378&r2=1804379&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java (original) +++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java Tue Aug 8 08:17:43 2017 @@ -303,7 +303,9 @@ public class SegmentBufferWriter impleme int totalLength = align(HEADER_SIZE + referencedSegmentIdCount * SEGMENT_REFERENCE_SIZE + recordNumberCount * RECORD_SIZE + length, 16); if (totalLength > buffer.length) { - throw new IllegalStateException("too much data for a segment"); + throw new IllegalStateException(String.format( + "Too much data for a segment %s (referencedSegmentIdCount=%d, recordNumberCount=%d, length=%d, totalLength=%d)", + segment.getSegmentId(), referencedSegmentIdCount, recordNumberCount, length, totalLength)); } statistics.size = length = totalLength; @@ -404,6 +406,8 @@ public class SegmentBufferWriter impleme } if (segmentSize > buffer.length) { + LOG.debug("Flushing full segment {} (headerSize={}, recordSize={}, length={}, segmentSize={})", + segment.getSegmentId(), headerSize, recordSize, length, segmentSize); flush(store); }