Author: mreutegg
Date: Thu Oct 12 14:54:31 2017
New Revision: 1811973

URL: http://svn.apache.org/viewvc?rev=1811973&view=rev
Log:
OAK-2621: Too many reads for child nodes

Add ignored test

Modified:
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java?rev=1811973&r1=1811972&r2=1811973&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
 Thu Oct 12 14:54:31 2017
@@ -3548,6 +3548,31 @@ public class DocumentNodeStoreTest {
         after.compareAgainstBaseState(before, new DefaultNodeStateDiff());
     }
 
+    // OAK-2621
+    @Ignore("OAK-2621")
+    @Test
+    public void getChildNodeCount() throws Exception {
+        CountingDocumentStore store = new CountingDocumentStore(new 
MemoryDocumentStore());
+        DocumentNodeStore ns = builderProvider.newBuilder().setAsyncDelay(0)
+                .setDocumentStore(store).getNodeStore();
+        NodeBuilder builder = ns.getRoot().builder();
+        for (int i = 0; i < 100; i++) {
+            builder.child("test").child("node-" + i);
+        }
+        merge(ns, builder);
+
+        ns.getNodeChildrenCache().invalidateAll();
+        store.resetCounters();
+        builder = ns.getRoot().builder();
+        for (int i = 0; i < 100; i++) {
+            NodeBuilder test = builder.child("test");
+            test.child("node-" + i).remove();
+            test.getChildNodeCount(1);
+        }
+        // must read the children of /test only once
+        assertEquals(1, store.getNumQueryCalls(NODES));
+    }
+
     private static class WriteCountingStore extends MemoryDocumentStore {
         private final ThreadLocal<Boolean> createMulti = new ThreadLocal<>();
         int count;


Reply via email to