- From: Geoffrey M Clemm <geoffrey.clemm@us.ibm.com>
- Date: Mon, 29 Dec 2003 23:09:32 -0500
- To: " webdav" <w3c-dist-auth@w3.org>
Here's a new version of GULP, with the following changes: - adjust wording to allow for a LOCK to request to just refresh an existing lock - allow any mention of a lock token in an If header to be a "submission" of that lock token. I believe this covers the specific issues raised by Lisa, except for: "Finally, this stuff doesn't address what happens to the other bindings of a locked resource - if they now appear as locked, which I would assume." I assume by "this stuff", Lisa is referring to the GULP specification. Since I believe the current GULP text covers all of the cases introduced by multiple bindings to the same resource, I'd need a specific situation which is not covered by the current GULP text before this can be considered a real issue. WRT to Lisa's assumption (the other bindings are locked), as Julian indicated, according to GULP that is incorrect, i.e. only the mappings specified by the request-URL of the LOCK are locked by the LOCK request. Note: The GULP specification does not enumerate all of the resources and bindings that are NOT affected by a LOCK request, because there are an infinite number of these. If a resource or binding is not identified as being affected by the LOCK, it is not affected by the LOCK. Cheers, Geoff -------------- GULP (Version 5.5) -------------- - A lock either directly or indirectly locks a resource. - When a LOCK request creates a new lock, and the resource identified by the request-URL is directly locked by that lock. The "lock-root" of the new lock is the request-URL. If at the time of the request, the request-URL is not mapped to a resource, a new resource with no content MUST be created by the request. - If a collection is directly locked by a depth:infinity lock, all members of that collection (other than the collection itself) are indirectly locked by that lock. In particular, if an internal member resource is added to a collection that is locked by a depth:infinity lock, and if the resource is not locked by that lock, then the resource becomes indirectly locked by that lock. Conversely, if a resource is indirectly locked with a depth:infinity lock, and if the result of deleting an internal member URI is that the resource is no longer a member of the collection that is directly locked by that lock, then the resource is no longer locked by that lock. - An UNLOCK request deletes the lock with the specified lock token. The request-URL of the request MUST identify a resource that is either directly or indirectly locked by that lock. After a lock is deleted, no resource is locked by that lock. - A lock token is "submitted" in a request when it appears in an If header. - If a request would modify the content for a locked resource, a dead property of a locked resource, a live property that is defined to be lockable for a locked resource, or an internal member URI of a locked collection, the request MUST fail unless the lock-token for that lock is submitted in the request. An internal member URI of a collection is considered to be modified if it is added, removed, or identifies a different resource. - If a request causes a directly locked resource to no longer be mapped to the lock-root of that lock, then the request MUST fail unless the lock-token for that lock is submitted in the request. If the request succeeds, then that lock MUST have been deleted by that request. - If a request would cause a resource to be locked by two different exclusive locks, the request MUST fail.
Received on Monday, 29 December 2003 23:10:01 UTC