checkValid();
if (!session.getLockManager().holdsLock((NodeData)this.getData()))
{
throw new LockException("The node not locked " + getPath());
}
if (!session.getLockManager().isLockHolder(this.nodeData()))
{
throw new LockException("There are no permission to unlock the node " + getPath());
}
if (dataManager.hasPendingChanges(getInternalPath()))
{
throw new InvalidItemStateException("Node has pending unsaved changes " + getPath());