This is an automated email from the ASF dual-hosted git repository.
reschke 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 4b1616edbd Revert "OAK-11683: Optionally disallow registration of
invalid namespace URIs (#2258)"
4b1616edbd is described below
commit 4b1616edbded9fc40604c18f92f6215cbd4c8fc0
Author: Julian Reschke <[email protected]>
AuthorDate: Thu May 22 13:02:24 2025 +0100
Revert "OAK-11683: Optionally disallow registration of invalid namespace
URIs (#2258)"
This reverts commit 9f3d003319bf2dc6138dff1c1d750ba82192170b.
---
.../plugins/name/ReadWriteNamespaceRegistry.java | 21 +++---------
.../name/ReadWriteNamespaceRegistryTest.java | 40 ++++++----------------
2 files changed, 16 insertions(+), 45 deletions(-)
diff --git
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java
index 37adcaddf2..adea1bbad6 100644
---
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java
+++
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java
@@ -25,7 +25,6 @@ import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier;
import org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,15 +38,7 @@ public abstract class ReadWriteNamespaceRegistry
private static final Logger LOG =
LoggerFactory.getLogger(ReadWriteNamespaceRegistry.class);
- /**
- * Feature flag to allow registering invalid namespace URIs (without a
colon).
- * Set the system property {@code oak.allowInvalidNamespaceUris} to {@code
false} to disable this feature.
- * Cannot be static in order to allow testing with different values.
- */
- private final boolean allowInvalidNamespaceUris =
SystemPropertySupplier.create("oak.allowInvalidNamespaceUris", true)
- .loggingTo(LOG).get();;
-
- protected ReadWriteNamespaceRegistry(Root root) {
+ public ReadWriteNamespaceRegistry(Root root) {
super(root);
}
@@ -80,13 +71,11 @@ public abstract class ReadWriteNamespaceRegistry
// sanity check for legal namespace names (excluding the "internal"
// namespace, see OAK-74)
- if (!NamespaceConstants.NAMESPACE_REP.equals(uri) &&
!uri.contains(":")) {
- if (allowInvalidNamespaceUris) {
+ if (!NamespaceConstants.NAMESPACE_REP.equals(uri)) {
+ if (!uri.contains(":")) {
LOG.error("Registering invalid namespace name '" + uri + "'
for prefix '" + prefix
- + "', please see
https://s.apache.org/jcr-2.0-spec/3_Repository_Model.html#3.2.1%20Namespaces",
- new Exception("call stack"));
- } else {
- throw new NamespaceException("Invalid namespace URI given: " +
uri + ". It must contain a colon.");
+ + "', please see
https://developer.adobe.com/experience-manager/reference-materials/spec/jcr/2.0/3_Repository_Model.html#3.2.1%20Namespaces",
+ new Exception("call stack"));
}
}
diff --git
a/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistryTest.java
b/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistryTest.java
index 42691289f3..30d70c9e46 100644
---
a/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistryTest.java
+++
b/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistryTest.java
@@ -17,7 +17,6 @@
package org.apache.jackrabbit.oak.plugins.name;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -69,13 +68,13 @@ public class ReadWriteNamespaceRegistryTest extends
OakBaseTest {
assertEquals("mix", r.getPrefix("http://www.jcp.org/jcr/mix/1.0"));
assertEquals("xml",
r.getPrefix("http://www.w3.org/XML/1998/namespace"));
- r.registerNamespace("p", "myscheme:n");
- assertEquals(r.getURI("p"), "myscheme:n");
- assertEquals(r.getPrefix("myscheme:n"), "p");
+ r.registerNamespace("p", "n");
+ assertEquals(r.getURI("p"), "n");
+ assertEquals(r.getPrefix("n"), "p");
- r.registerNamespace("p2", "myscheme:n2");
- assertEquals(r.getURI("p2"), "myscheme:n2");
- assertEquals(r.getPrefix("myscheme:n2"), "p2");
+ r.registerNamespace("p2", "n2");
+ assertEquals(r.getURI("p2"), "n2");
+ assertEquals(r.getPrefix("n2"), "p2");
// xml namespace check
assertTrue(SetUtils.toSet(r.getPrefixes()).contains("xml"));
@@ -88,12 +87,13 @@ public class ReadWriteNamespaceRegistryTest extends
OakBaseTest {
}
@Test
- public void testInvalidNamespaceInDefaultMode() throws Exception {
+ public void testInvalidNamespace() throws Exception {
+ final ContentSession session = createContentSession();
+ final Root root = session.getLatestRoot();
+ NamespaceRegistry r = getNamespaceRegistry(session, root);
+
LogCustomizer customLogs =
LogCustomizer.forLogger("org.apache.jackrabbit.oak.plugins.name.ReadWriteNamespaceRegistry").enable(Level.ERROR).create();
try {
- final ContentSession session = createContentSession();
- final Root root = session.getLatestRoot();
- NamespaceRegistry r = getNamespaceRegistry(session, root);
customLogs.starting();
r.registerNamespace("foo", "example.com");
r.unregisterNamespace("foo");
@@ -103,24 +103,6 @@ public class ReadWriteNamespaceRegistryTest extends
OakBaseTest {
}
finally {
customLogs.finished();
-
- }
- }
-
- @Test
- public void testInvalidNamespaceInStrictMode() {
- String oldValue = System.setProperty("oak.allowInvalidNamespaceUris",
"true");
- try {
- final ContentSession session = createContentSession();
- final Root root = session.getLatestRoot();
- NamespaceRegistry r = getNamespaceRegistry(session, root);
- assertThrows(NamespaceException.class, () ->
r.registerNamespace("foo", "example.com"));
- } finally {
- if (oldValue != null) {
- System.setProperty("oak.allowInvalidNamespaceUris", oldValue);
- } else {
- System.clearProperty("oak.allowInvalidNamespaceUris");
- }
}
}