Author: chetanm
Date: Fri Nov  4 19:39:02 2016
New Revision: 1768083

URL: http://svn.apache.org/viewvc?rev=1768083&view=rev
Log:
OAK-4606 - Avoid persisting rootRevision in PathFilteringDiff

The root rev would only be persisted for root doc. lastRev would be persisted 
for each doc

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/PathFilteringDiff.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreCacheTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java?rev=1768083&r1=1768082&r2=1768083&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
 Fri Nov  4 19:39:02 2016
@@ -67,7 +67,7 @@ class DelegatingDocumentNodeState extend
 
 
     /**
-     * Wraps a given NodeState as a {@link DelegatingDocumentNodeState} if
+     * Wraps a given root NodeState as a {@link DelegatingDocumentNodeState} if
      * it has required meta properties otherwise just returns the passed 
NodeState
      *
      * @param delegate nodeState to wrap

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/PathFilteringDiff.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/PathFilteringDiff.java?rev=1768083&r1=1768082&r2=1768083&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/PathFilteringDiff.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/PathFilteringDiff.java
 Fri Nov  4 19:39:02 2016
@@ -22,6 +22,7 @@ package org.apache.jackrabbit.oak.plugin
 import java.util.List;
 
 import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.commons.PathUtils;
 import org.apache.jackrabbit.oak.plugins.document.AbstractDocumentNodeState;
 import org.apache.jackrabbit.oak.plugins.document.RevisionVector;
 import org.apache.jackrabbit.oak.plugins.index.PathFilter;
@@ -102,7 +103,12 @@ class PathFilteringDiff extends ApplyDif
     }
 
     static void copyMetaProperties(AbstractDocumentNodeState state, 
NodeBuilder builder, List<String> metaPropNames) {
-        builder.setProperty(asPropertyState(PROP_REVISION, 
state.getRootRevision()));
+        //Only set root revision on root node
+        if (PathUtils.denotesRoot(state.getPath())) {
+            builder.setProperty(asPropertyState(PROP_REVISION, 
state.getRootRevision()));
+        }
+
+        //LastRev would be set on each node
         builder.setProperty(asPropertyState(PROP_LAST_REV, 
state.getLastRevision()));
 
         for (String metaProp : metaPropNames){

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreCacheTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreCacheTest.java?rev=1768083&r1=1768082&r2=1768083&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreCacheTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreCacheTest.java
 Fri Nov  4 19:39:02 2016
@@ -108,6 +108,14 @@ public class SecondaryStoreCacheTest {
                 = cache.getDocumentNodeState("/a/c", r2.getRootRevision(), 
a_r2.getLastRevision());
         assertTrue(EqualsDiff.equals(a_r2, result));
 
+        //Child docs should only have lastRev and not root rev
+        
assertTrue(result.hasProperty(DelegatingDocumentNodeState.PROP_LAST_REV));
+        
assertFalse(result.hasProperty(DelegatingDocumentNodeState.PROP_REVISION));
+
+        //Root doc would have both meta props
+        
assertTrue(secondary.getRoot().hasProperty(DelegatingDocumentNodeState.PROP_LAST_REV));
+        
assertTrue(secondary.getRoot().hasProperty(DelegatingDocumentNodeState.PROP_REVISION));
+
         nb = primary.getRoot().builder();
         nb.child("a").child("c").remove();
         AbstractDocumentNodeState r3 = merge(nb);


Reply via email to