@Override public ObjectData getObjectByPath( CallContext callContext, String repositoryId, String path, String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension) { // ////////////////// // General Exception // ////////////////// exceptionService.invalidArgumentRequired("objectId", path); // FIXME path is not preserved in db. Content content = contentService.getContentByPath(repositoryId, path); // TODO create objectNotFoundByPath method exceptionService.objectNotFoundByPath(DomainType.OBJECT, content, path); Lock lock = threadLockService.getReadLock(repositoryId, content.getId()); try { lock.lock(); exceptionService.permissionDenied( callContext, repositoryId, PermissionMapping.CAN_GET_PROPERTIES_OBJECT, content); // ////////////////// // Body of the method // ////////////////// return compileService.compileObjectData( callContext, repositoryId, content, filter, includeAllowableActions, includeRelationships, renditionFilter, includeAcl); } finally { lock.unlock(); } }