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 th...@apache.org on 2013/10/21 16:02:06 UTC

svn commit: r1534163 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoNodeStore.java

Author: thomasm
Date: Mon Oct 21 14:02:06 2013
New Revision: 1534163

URL: http://svn.apache.org/r1534163
Log:
OAK-825 Unnecessary performance overhead (too many child nodes are traversed)

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoNodeStore.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoNodeStore.java?rev=1534163&r1=1534162&r2=1534163&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoNodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoNodeStore.java Mon Oct 21 14:02:06 2013
@@ -533,13 +533,18 @@ public final class MongoNodeStore implem
             docChildrenCache.put(path, clone);
             c = clone;
         }
-        return Iterables.transform(c.childNames, new Function<String, NodeDocument>() {
+        Iterable<NodeDocument> it = Iterables.transform(c.childNames, 
+                new Function<String, NodeDocument>() {
             @Override
             public NodeDocument apply(String name) {
                 String p = PathUtils.concat(path, name);
                 return store.find(Collection.NODES, Utils.getIdFromPath(p));
             }
         });
+        if (c.childNames.size() > limit) {
+            it = Iterables.limit(it, limit);
+        }
+        return it;
     }
 
     @CheckForNull