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 mr...@apache.org on 2015/01/27 13:45:36 UTC
svn commit: r1655028 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
test/java/org/apache/jackrabbit/oak/plugins/document/ManyChildNodesTest.java
Author: mreutegg
Date: Tue Jan 27 12:45:35 2015
New Revision: 1655028
URL: http://svn.apache.org/r1655028
Log:
OAK-2448: Do not create nodeChildren cache entry for leaf
Modified:
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/ManyChildNodesTest.java
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=1655028&r1=1655027&r2=1655028&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 Tue Jan 27 12:45:35 2015
@@ -946,7 +946,7 @@ public final class DocumentNodeStore
boolean isNew, List<String> added,
List<String> removed, List<String> changed,
DiffCache.Entry cacheEntry) {
- if (isNew) {
+ if (isNew && !added.isEmpty()) {
DocumentNodeState.Children c = new DocumentNodeState.Children();
Set<String> set = Sets.newTreeSet();
for (String p : added) {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/ManyChildNodesTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/ManyChildNodesTest.java?rev=1655028&r1=1655027&r2=1655028&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/ManyChildNodesTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/ManyChildNodesTest.java Tue Jan 27 12:45:35 2015
@@ -65,6 +65,22 @@ public class ManyChildNodesTest {
}
mk.dispose();
}
+
+ // OAK-2448
+ @Test
+ public void nodeChildrenCache() throws Exception {
+ DocumentNodeStore ns = new DocumentMK.Builder().getNodeStore();
+ NodeBuilder builder = ns.getRoot().builder();
+ for (int i = 0; i < 1000; i++) {
+ builder.child("c-" + i);
+ }
+ ns.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);
+
+ // must not create entries for each child node
+ assertTrue(ns.getNodeChildrenCacheStats().getElementCount() < 1000);
+
+ ns.dispose();
+ }
private final class TestStore extends MemoryDocumentStore {