You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by al...@apache.org on 2015/07/06 13:29:43 UTC

svn commit: r1689371 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/CompactionGainEstimate.java

Author: alexparvulescu
Date: Mon Jul  6 11:29:43 2015
New Revision: 1689371

URL: http://svn.apache.org/r1689371
Log:
OAK-3075 Compaction Estimation should type check binary properties

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/CompactionGainEstimate.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/CompactionGainEstimate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/CompactionGainEstimate.java?rev=1689371&r1=1689370&r2=1689371&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/CompactionGainEstimate.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/CompactionGainEstimate.java Mon Jul  6 11:29:43 2015
@@ -17,6 +17,7 @@
 package org.apache.jackrabbit.oak.plugins.segment.file;
 
 import static org.apache.jackrabbit.oak.api.Type.BINARIES;
+import static org.apache.jackrabbit.oak.api.Type.BINARY;
 
 import java.io.File;
 import java.util.UUID;
@@ -24,8 +25,10 @@ import java.util.UUID;
 import com.google.common.hash.BloomFilter;
 import com.google.common.hash.Funnel;
 import com.google.common.hash.PrimitiveSink;
+
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.segment.RecordIdSet;
 import org.apache.jackrabbit.oak.plugins.segment.SegmentBlob;
 import org.apache.jackrabbit.oak.plugins.segment.SegmentId;
@@ -62,10 +65,18 @@ class CompactionGainEstimate implements
                     collectUUID(((SegmentPropertyState) property)
                             .getRecordId().getSegmentId());
                 }
-                for (Blob blob : property.getValue(BINARIES)) {
+                Type<?> type = property.getType();
+                if (type == BINARY) {
+                    Blob blob = property.getValue(BINARY);
                     for (SegmentId id : SegmentBlob.getBulkSegmentIds(blob)) {
                         collectUUID(id);
                     }
+                } else if (type == BINARIES) {
+                    for (Blob blob : property.getValue(BINARIES)) {
+                        for (SegmentId id : SegmentBlob.getBulkSegmentIds(blob)) {
+                            collectUUID(id);
+                        }
+                    }
                 }
             }
             for (ChildNodeEntry child : node.getChildNodeEntries()) {