This is an automated email from the ASF dual-hosted git repository. reschke pushed a commit to branch OAK-11657b in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit 2fe00869bb84d53a149adec74a17178118216ac5 Author: Julian Reschke <[email protected]> AuthorDate: Thu May 22 15:49:54 2025 +0100 OAK-11657: JackrabbitSession.getExpandedName/Path need to return stable expanded names - fix test case --- .../oak/jcr/session/JackrabbitSessionTest.java | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/session/JackrabbitSessionTest.java b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/session/JackrabbitSessionTest.java index 834afd47b2..77175486bf 100644 --- a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/session/JackrabbitSessionTest.java +++ b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/session/JackrabbitSessionTest.java @@ -29,6 +29,8 @@ import javax.jcr.Node; import javax.jcr.Property; import javax.jcr.RepositoryException; +import java.util.UUID; + import static org.mockito.Mockito.mock; public class JackrabbitSessionTest extends AbstractJCRTest { @@ -87,11 +89,9 @@ public class JackrabbitSessionTest extends AbstractJCRTest { assertEquals("{}testroot", s.getExpandedName(testRootNode)); Node n = testRootNode.addNode("test:bar"); assertEquals("{http://www.apache.org/jackrabbit/test}bar", s.getExpandedName(n)); - // now remap namespace uri - should not affect expanded name - assertEquals("prefix 'test' has unexpected mapping", - "http://www.apache.org/jackrabbit/test", s.getNamespaceURI("test")); + // now remap namespace uri s.setNamespacePrefix("test", "urn:foo"); - assertEquals("{http://www.apache.org/jackrabbit/test}bar", s.getExpandedName(n)); + assertEquals("{urn:foo}bar", s.getExpandedName(n)); // use special namespace uri n = testRootNode.addNode("rep:bar"); assertEquals("{internal}bar", s.getExpandedName(n)); @@ -101,16 +101,22 @@ public class JackrabbitSessionTest extends AbstractJCRTest { // empty namespace uri assertEquals("{}testroot", s.getExpandedName(testRootNode)); + String randomNamespacePrefix = "prefix-" + UUID.randomUUID(); + String randomNamespaceName = "name-" + UUID.randomUUID(); + // register broken namespace name - s.getWorkspace().getNamespaceRegistry().registerNamespace("foo", "bar"); - Node n = testRootNode.addNode("foo:qux"); + s.getWorkspace().getNamespaceRegistry().registerNamespace(randomNamespacePrefix, randomNamespaceName); try { + Node n = testRootNode.addNode(randomNamespacePrefix + ":qux"); + // there is no expanded name, thus we expect an exception here s.getExpandedName(n); fail("there is no expanded name in this case, so we expect the call to fail"); } catch (NamespaceException ex) { // expected + } finally { + s.getWorkspace().getNamespaceRegistry().unregisterNamespace(randomNamespacePrefix); } } @@ -118,8 +124,8 @@ public class JackrabbitSessionTest extends AbstractJCRTest { assertEquals("/{}testroot", s.getExpandedPath(testRootNode)); Node n = testRootNode.addNode("test:bar").addNode("rep:bar"); assertEquals("/{}testroot/{http://www.apache.org/jackrabbit/test}bar/{internal}bar", s.getExpandedPath(n)); - // now remap namespace uri - should not affect expanded name + // now remap namespace uri s.setNamespacePrefix("test", "urn:foo"); - assertEquals("/{}testroot/{http://www.apache.org/jackrabbit/test}bar/{internal}bar", s.getExpandedPath(n)); + assertEquals("/{}testroot/{urn:foo}bar/{internal}bar", s.getExpandedPath(n)); } } \ No newline at end of file
