in src/main/java/org/apache/sling/installer/provider/jcr/impl/JcrUtil.java [44:75]
public static Node createPath(final Session session,
final String absolutePath,
final String nodeType)
throws RepositoryException {
final Node parentNode = session.getRootNode();
String relativePath = absolutePath.substring(1);
if (!parentNode.hasNode(relativePath)) {
Node node = parentNode;
int pos = relativePath.lastIndexOf('/');
if ( pos != -1 ) {
final StringTokenizer st = new StringTokenizer(relativePath.substring(0, pos), "/");
while ( st.hasMoreTokens() ) {
final String token = st.nextToken();
if ( !node.hasNode(token) ) {
try {
node.addNode(token, FOLDER_NODE_TYPE);
} catch (RepositoryException re) {
// we ignore this as this folder might be created from a different task
session.refresh(false);
}
}
node = node.getNode(token);
}
relativePath = relativePath.substring(pos + 1);
}
if ( !node.hasNode(relativePath) ) {
node.addNode(relativePath, nodeType);
}
return node.getNode(relativePath);
}
return parentNode.getNode(relativePath);
}