private Node createNodeForModelId(ModelId id) throws RepositoryException { StringBuilder pathBuilder = new StringBuilder(); Iterator<String> modelIdIterator = id.iterator(); Node rootNode = session.getRootNode(); while (modelIdIterator.hasNext()) { String nextPathFragment = modelIdIterator.next(); pathBuilder.append(nextPathFragment).append("/"); try { rootNode.getNode(pathBuilder.toString()); } catch (PathNotFoundException pathNotFound) { Node addedNode = rootNode.addNode(pathBuilder.toString(), "nt:folder"); addedNode.setPrimaryType("nt:folder"); } } return rootNode.getNode(id.getFullPath().substring(1)); }