Author: alexparvulescu Date: Thu Feb 4 18:17:40 2016 New Revision: 1728525
URL: http://svn.apache.org/viewvc?rev=1728525&view=rev Log: OAK-3988 Offline compaction should avoid loading external binaries Modified: jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java Modified: jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java?rev=1728525&r1=1728524&r2=1728525&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java (original) +++ jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java Thu Feb 4 18:17:40 2016 @@ -466,8 +466,21 @@ public class Compactor { } long count = 0; for (PropertyState ps : state.getProperties()) { + Type<?> type = ps.getType(); for (int i = 0; i < ps.count(); i++) { - long size = ps.size(i); + long size = 0; + if (type == BINARY || type == BINARIES) { + Blob blob = ps.getValue(BINARY, i); + if (blob instanceof SegmentBlob) { + if (!((SegmentBlob) blob).isExternal()) { + size += blob.length(); + } + } else { + size += blob.length(); + } + } else { + size = ps.size(i); + } count += size; if (size >= offlineThreshold || count >= offlineThreshold) { return true;
