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 re...@apache.org on 2022/01/24 15:44:00 UTC
[jackrabbit-oak] branch 1.8 updated: OAK-9616: support expanded names in setPrimaryType
This is an automated email from the ASF dual-hosted git repository.
reschke pushed a commit to branch 1.8
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/1.8 by this push:
new c524621 OAK-9616: support expanded names in setPrimaryType
c524621 is described below
commit c5246211adfe45566ae05f3f39fd1a1c0ec93342
Author: Julian Reschke <ju...@gmx.de>
AuthorDate: Sat Nov 6 16:00:16 2021 +0100
OAK-9616: support expanded names in setPrimaryType
---
.../apache/jackrabbit/oak/jcr/session/NodeImpl.java | 3 ++-
.../org/apache/jackrabbit/oak/jcr/RepositoryTest.java | 19 +++++++++++++++++++
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java
index 5ebd576..5876ed1 100644
--- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java
+++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java
@@ -936,6 +936,7 @@ public class NodeImpl<T extends NodeDelegate> extends ItemImpl<T> implements Nod
@Override
public void setPrimaryType(final String nodeTypeName) throws RepositoryException {
+ final String oakTypeName = getOakName(checkNotNull(nodeTypeName));
sessionDelegate.performVoid(new ItemWriteOperation<Void>("setPrimaryType") {
@Override
public void checkPreconditions() throws RepositoryException {
@@ -947,7 +948,7 @@ public class NodeImpl<T extends NodeDelegate> extends ItemImpl<T> implements Nod
@Override
public void performVoid() throws RepositoryException {
- internalSetPrimaryType(nodeTypeName);
+ internalSetPrimaryType(oakTypeName);
}
});
}
diff --git a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
index 8bc1fac..9ec7275 100644
--- a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
+++ b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
@@ -1903,6 +1903,25 @@ public class RepositoryTest extends AbstractRepositoryTest {
}
@Test
+ public void setPrimaryTypeExpandedName() throws RepositoryException {
+ Node testNode = getNode(TEST_PATH);
+ assertEquals("nt:unstructured", testNode.getPrimaryNodeType().getName());
+ assertEquals("nt:unstructured", testNode.getProperty("jcr:primaryType").getString());
+
+ testNode.setPrimaryType("{http://www.jcp.org/jcr/nt/1.0}folder");
+ getAdminSession().save();
+
+ Session session2 = createAnonymousSession();
+ try {
+ testNode = session2.getNode(TEST_PATH);
+ assertEquals("nt:folder", testNode.getPrimaryNodeType().getName());
+ assertEquals("nt:folder", testNode.getProperty("jcr:primaryType").getString());
+ } finally {
+ session2.logout();
+ }
+ }
+
+ @Test
public void setPrimaryTypeShouldFail() throws RepositoryException {
Node testNode = getNode(TEST_PATH);
assertEquals("nt:unstructured", testNode.getPrimaryNodeType().getName());