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();
}