if (!hasPrivileges(absPath, new Privilege[] {privileges.forName(Privilege.JCR_MODIFY_ACCESS_CONTROL)})) {
throw new AccessDeniedException();
}
try {
CachedNode cacheNode = session.cachedNode(session.pathFactory().create(absPath), false);
SessionCache cache = session.cache();
MutableCachedNode mutableNode = cache.mutable(cacheNode.getKey());
MutableCachedNode.PermissionChanges permissionChanges = mutableNode.removeACL(cache);
session.aclRemoved(permissionChanges.removedPrincipalsCount());
} catch (UnsupportedOperationException e) {
throw new RepositoryException(e);
}