boolean changeLockHeldBySession( String lockToken,
boolean value ) throws LockException {
CachedNode locksNode = locksNode();
ChildReferences childRefs = locksNode.getChildReferences(system);
Name name = names.create(lockToken);
ChildReference ref = childRefs.getChild(name);
if (ref == null) {
throw new LockException(JcrI18n.invalidLockToken.text(lockToken));
}
MutableCachedNode lockNode = system.mutable(ref.getKey());
boolean isHeld = booleans.create(first(lockNode, ModeShapeLexicon.IS_HELD_BY_SESSION, false));
if (isHeld && value) {
// The lock is already held by a session ...
return false;
}