throws PathNotFoundException, ConstraintViolationException,
VersionException, LockException, RepositoryException {
// check sanity of this session
sanityCheck();
Item item;
try {
Path p = PathFormat.parse(parentAbsPath, getNamespaceResolver()).getNormalizedPath();
if (!p.isAbsolute()) {
throw new RepositoryException("not an absolute path: " + parentAbsPath);
}
item = getItemManager().getItem(p);
} catch (MalformedPathException mpe) {
String msg = parentAbsPath + ": invalid path";
log.debug(msg);
throw new RepositoryException(msg, mpe);
} catch (AccessDeniedException ade) {
throw new PathNotFoundException(parentAbsPath);
}
if (!item.isNode()) {
throw new PathNotFoundException(parentAbsPath);
}
NodeImpl parent = (NodeImpl) item;
// verify that parent node is checked-out