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