From b688a5a11f8f6d81b6985a7e6ff2895df27084f5 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 13 Jan 2011 20:12:28 +0000 Subject: [PATCH] Optimize JCR mkdirs in case a node already exists git-svn-id: https://svn.argeo.org/commons/trunk@4024 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../src/main/java/org/argeo/jcr/JcrUtils.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java index 4e197d5fb..d879c64fb 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java @@ -152,6 +152,19 @@ public class JcrUtils { if (path.equals('/')) return session.getRootNode(); + if (session.itemExists(path)) { + Node node = session.getNode(path); + // check type + if (type != null + && !type.equals(node.getPrimaryNodeType().getName())) + throw new ArgeoException("Node " + node + + " exists but is of type " + + node.getPrimaryNodeType().getName() + + " not of type " + type); + // TODO: check versioning + return node; + } + StringTokenizer st = new StringTokenizer(path, "/"); StringBuffer current = new StringBuffer("/"); Node currentNode = session.getRootNode(); -- 2.30.2