Author: mreutegg
Date: Wed Nov 23 16:04:20 2016
New Revision: 1770995
URL: http://svn.apache.org/viewvc?rev=1770995&view=rev
Log:
OAK-5149: Set root revision for child nodes in DocumentNodeStore.getChildNodes()
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java?rev=1770995&r1=1770994&r2=1770995&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
Wed Nov 23 16:04:20 2016
@@ -512,7 +512,7 @@ public class DocumentNodeState extends A
@Nonnull
@Override
public NodeState getNodeState() {
- return input.withRootRevision(rootRevision,
fromExternalChange);
+ return input;
}
};
}
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1770995&r1=1770994&r2=1770995&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
Wed Nov 23 16:04:20 2016
@@ -1126,7 +1126,8 @@ public final class DocumentNodeStore
readRevision, p, cachedDocStr, uncachedDocStr);
throw new DocumentStoreException(exceptionMsg);
}
- return result;
+ return result.withRootRevision(parent.getRootRevision(),
+ parent.isFromExternalChange());
}
});
}
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java?rev=1770995&r1=1770994&r2=1770995&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
Wed Nov 23 16:04:20 2016
@@ -2839,6 +2839,35 @@ public class DocumentNodeStoreTest {
assertFalse(finds.contains(Utils.getIdFromPath("/node-1/bar")));
}
+ // OAK-5149
+ @Test
+ public void getChildNodesWithRootRevision() throws Exception {
+ DocumentNodeStore ns = builderProvider.newBuilder().getNodeStore();
+ NodeBuilder builder = ns.getRoot().builder();
+ builder.child("foo");
+ merge(ns, builder);
+
+ builder = ns.getRoot().builder();
+ builder.child("foo").child("bar");
+ merge(ns, builder);
+
+ builder = ns.getRoot().builder();
+ builder.child("foo").child("baz");
+ merge(ns, builder);
+
+ builder = ns.getRoot().builder();
+ builder.child("qux");
+ merge(ns, builder);
+
+ RevisionVector headRev = ns.getHeadRevision();
+ Iterable<DocumentNodeState> nodes = ns.getChildNodes(
+ asDocumentNodeState(ns.getRoot().getChildNode("foo")), null,
10);
+ assertEquals(2, Iterables.size(nodes));
+ for (DocumentNodeState c : nodes) {
+ assertEquals(headRev, c.getRootRevision());
+ }
+ }
+
private static class TestException extends RuntimeException {
}