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


Reply via email to