[ https://issues.apache.org/jira/browse/JCR-3793?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thomas Mueller reassigned JCR-3793: ----------------------------------- Assignee: Thomas Mueller > vlt: with many child nodes, NodeNameList.restoreOrder is very slow with Oak > --------------------------------------------------------------------------- > > Key: JCR-3793 > URL: https://issues.apache.org/jira/browse/JCR-3793 > Project: Jackrabbit Content Repository > Issue Type: Improvement > Reporter: Thomas Mueller > Assignee: Thomas Mueller > Attachments: JCR-3793.patch, ReorderTest.java > > > The method org.apache.jackrabbit.vault.fs.api.NodeNameList.restoreOrder > re-orders orderable child nodes by using Node.orderBefore. This is very slow > if there are many child nodes, specially with Oak (minutes for 10'000 nodes, > while only about 1 second for Jackrabbit 2.x). > [~tripod], I wonder if a possible solution is to first check whether > re-ordering is needed? For example using: > {noformat} > boolean isOrdered(ArrayList<String> names, Node parent) > throws RepositoryException { > NodeIterator it1 = parent.getNodes(); > for (Iterator<String> it2 = names.iterator(); it2.hasNext();) { > if (!it1.hasNext() || > !it1.nextNode().getName().equals(it2.next())) { > return false; > } > } > return !it1.hasNext(); > } > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)