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);
}