You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by st...@apache.org on 2018/06/12 07:36:56 UTC

svn commit: r1833380 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistryTest.java

Author: stillalex
Date: Tue Jun 12 07:36:56 2018
New Revision: 1833380

URL: http://svn.apache.org/viewvc?rev=1833380&view=rev
Log:
OAK-7537 Allow for initial registration of 'xml' namespace


Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java
    jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistryTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java?rev=1833380&r1=1833379&r2=1833380&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java Tue Jun 12 07:36:56 2018
@@ -74,7 +74,7 @@ class NamespaceEditor extends DefaultEdi
                 throw new CommitFailedException(
                         CommitFailedException.NAMESPACE, 2,
                         "Invalid namespace mapping: " + prefix);
-            } else if (prefix.toLowerCase(Locale.ENGLISH).startsWith("xml")) {
+            } else if (prefix.toLowerCase(Locale.ENGLISH).startsWith("xml") && namespaces.hasProperty("xml")) {
                 throw new CommitFailedException(
                         CommitFailedException.NAMESPACE, 3,
                         "XML prefixes are reserved: " + prefix);

Modified: jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistryTest.java?rev=1833380&r1=1833379&r2=1833380&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistryTest.java (original)
+++ jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistryTest.java Tue Jun 12 07:36:56 2018
@@ -16,16 +16,20 @@
 */
 package org.apache.jackrabbit.oak.plugins.name;
 
+import static com.google.common.collect.Sets.newHashSet;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
+import javax.jcr.NamespaceException;
 import javax.jcr.NamespaceRegistry;
 
+import org.apache.jackrabbit.oak.InitialContent;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.OakBaseTest;
 import org.apache.jackrabbit.oak.api.ContentSession;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.fixture.NodeStoreFixture;
-import org.apache.jackrabbit.oak.InitialContent;
 import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider;
 import org.junit.Test;
 
@@ -77,5 +81,13 @@ public class ReadWriteNamespaceRegistryT
         assertEquals(r.getURI("p2"), "n2");
         assertEquals(r.getPrefix("n2"), "p2");
 
+        // xml namespace check
+        assertTrue(newHashSet(r.getPrefixes()).contains("xml"));
+        try {
+            r.registerNamespace("xml", "test");
+            fail("Trying to register the namespace 'xml' must throw a NamespaceException.");
+        } catch (NamespaceException ex) {
+            // expected
+        }
     }
 }