@Override public void rename(StoredObject so, String newName, String user) { try { lock(); if (so.getId().equals(fRootFolder.getId())) { throw new CmisInvalidArgumentException("Root folder cannot be renamed."); } if (so instanceof Fileable) { for (String folderId : ((Fileable) so).getParentIds()) { Folder folder = (Folder) getObjectById(folderId); if (hasChild(folder, newName)) { throw new CmisNameConstraintViolationException( "Cannot rename object to " + newName + ". This path already exists in parent " + getFolderPath(folder.getId()) + "."); } } } so.setName(newName); } finally { unlock(); } }