- From: <jamsden@us.ibm.com>
- Date: Mon, 16 Aug 1999 16:51:07 -0400
- To: w3c-dist-auth@w3.org
I agree with all of Kevin's observations below. In particular, if you MOVE a resource to a destination where the (new) parent collection is locked, you need the lock token for that parent collection in order to add the new member. Sorry, I wasn't careful enough in my response. It's easy to get all these rules mixed up or forget one - ample justification for keeping things simple and regular. "Kevin Wiggen" <wiggs@wiggenout.com> on 08/16/99 03:46:42 PM To: Jim Amsden/Raleigh/IBM@IBMUS, w3c-dist-auth@w3.org cc: Subject: 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 16:53:49 UTC