RE: LOCK Scenarios

<KW> tags.... Thanks for bringing up COPY, we should be making it a priority
as well in all of this..

I am OK with 1-3.  I might argue that locks on the destination should
remain, but I could be convinced otherwise.

A resource is being MOVEd.  The locks are Depth: infinity locks on the
collections that contain either the source or the destination location.

4. The source collection is locked, but the destination collection is not
MOVE /a/b to /x/y, where /a/ is locked, but /x/ is not and /x/y is not.
<jra>
The source lock token is required in the If header. /x/y is not locked after
the
MOVE.
</jra><KW> agree</KW>

5. The source collection is not locked, but the destination collection is.
MOVE /a/b to /x/y, where /a/ is not locked and /a/b is not locked, but /x/
is locked.
<jra>
No lock token is required. /x/y will be added to /a's write lock if it is a
depth infinity lock. Otherwise, /x/y is not locked after the MOVE operation.
</jra>
<KW> Disagree with the part about No lock token required.  Since you are
changing /x's contents, you need /x's LOCK.  /a/b is moved to /x and added
to its LOCK </KW>

6. Both are locked, but with separate locks.
MOVE /a/b to /x/y, where /a/ has lock L1 and /b/ has lock L2.
<jra>
The source lock token is required in the If header. /x/y will be added to
/a's
write lock if it is a depth infinity lock. Otherwise, /x/y is not locked
after
the MOVE operation.
</jra><KW> Same arguement as above.  2 Lock token's required, /a loses /a/b
as a resource and loses it from its lock.  /x/y now exists as a new resource
(/a/b) but is still locked by L2.</KW>

One lock is at the collection level, the other at the resource level.

7. The source resource is locked, and the destination collection is locked
with a different token
MOVE /a/b to /x/y, where /a/b has lock L1, /a/ is not locked, and /x/ has
lock L2.
<jra>
L1 is required in the If header. /x/y will be locked with lock L2 if it is a
depth infinity lock.
</jra><KW> Both locks are required in IF header for reasons above.  L1 is
removed from system (nothing left to lock?) while new /x/y is in L2 due to
infinity lock</KW>


I agree that some mention must be made of the Depth header on the collection
locks.  We need to add it and COPY to the use cases that are being argued..

Kevin

Received on Monday, 16 August 1999 15:48:11 UTC