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

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


The following commit(s) were added to refs/heads/trunk by this push:
     new c46a888171 Revert "OAK-11784 avoid repeated instantiation of the 
NamespaceRegistry"
c46a888171 is described below

commit c46a8881711242ba912aa2fcb9118484a2b5f4a4
Author: Joerg Hoh <[email protected]>
AuthorDate: Sun Jul 6 15:54:30 2025 +0200

    Revert "OAK-11784 avoid repeated instantiation of the NamespaceRegistry"
    
    This reverts commit 04caa2c615f736d032421a97077aff7db967f549.
---
 .../jackrabbit/oak/jcr/xml/ImportHandler.java      | 41 ++--------------------
 1 file changed, 3 insertions(+), 38 deletions(-)

diff --git 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImportHandler.java 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImportHandler.java
index d66ac90ac8..37a154aee5 100644
--- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImportHandler.java
+++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImportHandler.java
@@ -19,17 +19,15 @@ package org.apache.jackrabbit.oak.jcr.xml;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.jcr.NamespaceException;
-import javax.jcr.NamespaceRegistry;
 import javax.jcr.RepositoryException;
 
+import org.apache.jackrabbit.commons.NamespaceHelper;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate;
 import org.apache.jackrabbit.oak.jcr.session.SessionContext;
 import org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants;
 import org.apache.jackrabbit.oak.spi.xml.Importer;
-import org.apache.jackrabbit.util.XMLChar;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.xml.sax.Attributes;
@@ -63,7 +61,6 @@ public class ImportHandler extends DefaultHandler {
     private final SessionContext sessionContext;
     private final Importer importer;
     private final boolean isWorkspaceImport;
-    private final NamespaceRegistry namespaceRegistry;
 
     protected Locator locator;
     private TargetImportHandler targetHandler;
@@ -73,7 +70,6 @@ public class ImportHandler extends DefaultHandler {
                          int uuidBehavior, boolean isWorkspaceImport) throws 
RepositoryException {
         this.sessionContext = sessionContext;
         this.isWorkspaceImport = isWorkspaceImport;
-        this.namespaceRegistry = 
sessionContext.getSession().getWorkspace().getNamespaceRegistry();
 
         SessionDelegate sd = sessionContext.getSessionDelegate();
         root = (isWorkspaceImport) ? sd.getContentSession().getLatestRoot() : 
sd.getRoot();
@@ -140,7 +136,8 @@ public class ImportHandler extends DefaultHandler {
     public void startPrefixMapping(String prefix, String uri)
             throws SAXException {
         try {
-            registerNamespace(prefix, uri);
+            new NamespaceHelper(sessionContext.getSession()).registerNamespace(
+                    prefix, uri);
             if (targetHandler != null) {
                 targetHandler.startPrefixMapping(prefix, uri);
             } else {
@@ -205,36 +202,4 @@ public class ImportHandler extends DefaultHandler {
         this.locator = locator;
     }
 
-    /**
-     * This version is adapted from the 
org.apache.jackrabbit.commons.NamespaceHelper.registerNamespace()
-     */
-    private void registerNamespace(String prefix, String uri)
-            throws RepositoryException {
-        try {
-            // Check if the namespace is registered
-            namespaceRegistry.getPrefix(uri);
-        } catch (NamespaceException e1) {
-             // Replace troublesome prefix hints
-            if (prefix == null || prefix.length() == 0
-                    || prefix.toLowerCase().startsWith("xml")
-                    || !XMLChar.isValidNCName(prefix)) {
-                prefix = "ns"; // ns, ns2, ns3, ns4, ...
-            }
-
-            // Loop until an unused prefix is found
-            try {
-                String base = prefix;
-                for (int i = 2; true; i++) {
-                    namespaceRegistry.getURI(prefix);
-                    prefix = base + i;
-                }
-            } catch (NamespaceException e2) {
-                // Exit the loop
-            }
-
-            // Register the namespace
-            namespaceRegistry.registerNamespace(prefix, uri);
-        }
-    }
-
 }

Reply via email to