- From: Greg Stein <gstein@lyra.org>
- Date: Sun, 28 May 2000 03:41:01 -0700 (PDT)
- To: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com>
- cc: w3c-dist-auth@w3.org
On Sat, 27 May 2000, Geoffrey M. Clemm wrote: > What Greg proposes is consistent with what is stated in 2518. > > But I believe it is also consistent to say that a lock null resource > is not treated as a real member of a collection (just as there are > various other ways where it doesn't act like a real resource). I see no rationale to create more differences :-) > This is compatible with section 7.5 of 2518, which states that: > > when a principal issues a PUT or POST request to create a new > resource under a URI which needs to be an internal member of a write > locked collection to maintain HTTP namespace consistency, or issues a > DELETE to remove a resource which has a URI which is an existing > internal member URI of a write locked collection, this request MUST > fail if the principal does not have a write lock on the collection. > > i.e. it says nothing about the creation of "lock-null" resources via > the LOCK request. I think that you are being too literal in your reading [in order to support your position]. Note that the text in question does not mention MKCOL or BIND, yet we expect the client to provide a locktoken for the parent on those methods. In other words, I am reading S7.5 as a "general description of behavior" rather than a literal/explicit description. As a result, the creation of ANY internal member, by ANY means, should (IMO) require the client to provide locktokens for the [write-locked] parent collection. > Having a LOCK request not interact with locks on a parent collection > ensures that a LOCK request has consistent behavior wrt a write-locked > parent collection, whether or not a resource currently exists at the > LOCK request-URL. It also ensures you do not get the bizarre behavior > where the first shared lock on a null resource requires the lock token > for a locked parent collection, while all subsequent shared locks do not. You can't issue two MKCOL methods for the same resource, so I believe there is precedent for the different behavior. Using lock to create a locknull resource is a state-changing operation of the target resource. It seems quite reasonable to have methods operate differently, based on the different states of that resource. Another counter-example for you: Collection <locktoken A, depth=0> (no internal members) The client issues a PUT to create "Resource" within Collection. Since this is the first PUT (thusly creating the internal member), locktoken A must be provided. Now the client issues a second PUT. But wait! The locktoken DOES NOT need to be provided. Therefore: I submit that your argument does not hold, and that the behavior that I detailed w.r.t. locknull resources is "correct." I'm still quite open to discussion, of course. I don't want to create incompatibilities in behavior. Cheers, -g p.s. of course, IIS5 doesn't even allow collection locks, so clients can simply be screwed anyhow :-) -- Greg Stein, http://www.lyra.org/
Received on Sunday, 28 May 2000 06:41:23 UTC