This is an automated email from the ASF dual-hosted git repository.

joerghoh pushed a commit to branch OAK-11607-AbstractTree
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


The following commit(s) were added to refs/heads/OAK-11607-AbstractTree by this 
push:
     new 6c9d0d6521 OAK-11607 for ordered nodetypes read the child node names 
lazily
6c9d0d6521 is described below

commit 6c9d0d6521af77d421b405a6a6d65a4d6f9d86e0
Author: Joerg Hoh <[email protected]>
AuthorDate: Fri Mar 14 14:47:54 2025 +0100

    OAK-11607 for ordered nodetypes read the child node names lazily
---
 .../jackrabbit/oak/plugins/tree/impl/AbstractTree.java       | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java
index 852e84047a..3e323bec5c 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java
@@ -125,17 +125,7 @@ public abstract class AbstractTree implements Tree {
         NodeBuilder nodeBuilder = getNodeBuilder();
         PropertyState order = nodeBuilder.getProperty(OAK_CHILD_ORDER);
         if (order != null && order.getType() == NAMES) {
-            Set<String> names = 
SetUtils.toLinkedSet(nodeBuilder.getChildNodeNames());
-            List<String> ordered = new ArrayList<>(names.size());
-            for (String name : order.getValue(NAMES)) {
-                // only include names of child nodes that actually exist
-                if (names.remove(name)) {
-                    ordered.add(name);
-                }
-            }
-            // add names of child nodes that are not explicitly ordered
-            ordered.addAll(names);
-            return ordered;
+            return new OrderedChildnameIterable(order.getValue(NAMES), 
nodeBuilder.getChildNodeNames());
         } else {
             return nodeBuilder.getChildNodeNames();
         }

Reply via email to