Atomically persists all changes made to the tree attached to this root at the given {@code path}. An implementations may throw a {@code CommitFailedException} if there are changes outside of the subtreedesignated by {@code path} and the implementation does not supportsuch partial commits. However all implementation must handler the case where a {@code path} designates a subtree that contains allunpersisted changes.
The message string (if given) is passed to the underlying storage as a part of the internal commit information attached to this commit. The commit information will be made available to local observers but will not be visible to observers on other cluster nodes.
After a successful operation the root is automatically {@link #refresh() refreshed}, such that trees previously obtained through {@link #getTree(String)} may become non existing.
@param message custom message to be associated with this commit
@param path of the subtree to commit
@throws CommitFailedException if the commit failed