[ 
https://issues.apache.org/jira/browse/OAK-11784?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joerg Hoh resolved OAK-11784.
-----------------------------
      Assignee: Joerg Hoh  (was: Manfred Baedke)
    Resolution: Fixed

> new instance of NamespaceRegistry is created whenever an item is added via 
> XML DocViewImporter
> ----------------------------------------------------------------------------------------------
>
>                 Key: OAK-11784
>                 URL: https://issues.apache.org/jira/browse/OAK-11784
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: jcr
>    Affects Versions: 1.78.0
>            Reporter: Joerg Hoh
>            Assignee: Joerg Hoh
>            Priority: Major
>
> While tracing slow package imports via filevault, I came across this 
> stacktrace, which appears quite often (around 12% of the times):
> {noformat}
>         [...]
>       at 
> org.apache.jackrabbit.oak.plugins.name.ReadOnlyNamespaceRegistry.<init>(ReadOnlyNamespaceRegistry.java:60)
>       at 
> org.apache.jackrabbit.oak.plugins.name.ReadWriteNamespaceRegistry.<init>(ReadWriteNamespaceRegistry.java:42)
>       at 
> org.apache.jackrabbit.oak.jcr.session.WorkspaceImpl$4.<init>(WorkspaceImpl.java:223)
>       at 
> org.apache.jackrabbit.oak.jcr.session.WorkspaceImpl.getNamespaceRegistry(WorkspaceImpl.java:223)
>       at 
> org.apache.jackrabbit.commons.NamespaceHelper.registerNamespace(NamespaceHelper.java:196)
>       at 
> org.apache.jackrabbit.oak.jcr.xml.ImportHandler.startPrefixMapping(ImportHandler.java:139)
>       at 
> org.apache.jackrabbit.vault.fs.impl.io.DocViewImporter.createNewNode(DocViewImporter.java:1117)
>         [...]
> {noformat}
> Whenever the NamespaceRegistry is created it reads the namespace tree from 
> the repository, which is expensive operation, especially when called in a 
> tight loop as the {{ImportHandler.startElement()}}.
> For that the ImportHandler should be able to create the NamespaceRegistry on 
> its own and then reuse it (instead of letting the 
> {{NamespaceHelper.registerNamespace()}} re-create it on every invocation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to