Author: frm
Date: Mon Oct  3 11:43:42 2016
New Revision: 1763157

URL: http://svn.apache.org/viewvc?rev=1763157&view=rev
Log:
OAK-2498 - Fix the precise size estimation in Segment.prepare()

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=1763157&r1=1763156&r2=1763157&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
 Mon Oct  3 11:43:42 2016
@@ -427,13 +427,13 @@ public class SegmentBufferWriter impleme
             Set<SegmentId> segmentIds = newHashSet();
             for (RecordId recordId : ids) {
                 SegmentId segmentId = recordId.getSegmentId();
-                if (segmentReferences.contains(segmentId)) {
+                if (!segmentReferences.contains(segmentId)) {
                     segmentIds.add(segmentId);
                 }
             }
 
             // Adjust the estimation of the new referenced segment ID count.
-            referencedIdCount -= segmentIds.size();
+            referencedIdCount =  segmentReferences.size() + segmentIds.size();
 
             headerSize = HEADER_SIZE + referencedIdCount * 16 + 
recordNumbersCount * 12;
             segmentSize = align(headerSize + recordSize + length, 16);


Reply via email to