Subject: Issue: COPYMOVE_LOCKED_STATUS_CODE_CLARIFICATION

From: "Jason Crawford" <[email-masked]>
Date: Thu, 2 May 2002 16:40:34 -0400

The recent thread entitled
RE: need clarification about COPY to locked resource response cod       e
  and
RE: need clarification about COPY to locked resource response cod e
recently died down with the following posting.
http://lists.w3.org/Archives/Public/w3c-dist-auth/2002AprJun/0043.html

I just want to bring it to conclusion and get it on the ISSUES list.

So we have a proposal on the table regarding error reporting for lock
conflicts
during COPY/MOVE.  I'll try to describe it below.

If a portion of the destination is locked and preventing a portion of the
COPY/MOVE,
then a 207 Multistatus MUST be returned by the server.   That MultiStatus
response should
indicate (with 409 Conflict status) what source resource could not be
copied/moved and
optionally say something about the locked destination resource the locked
that prevented
the copy.

<D:response>
    <D:href>/bla/source</D:href>
    <D:status>HTTP/1.1 409 CONFLICT</D:status>
    <D:responsedescription>
      <D:error>
         <D:locked-destination>
           <D:href>/other/destref...</D:href>
         </D:locked-source>
      </D:error>
    </D:responsedescription>
 </D:response>

That D:error tag is optional.  And clearly we'd need the add definitions
for the
D:error tag and the descendent tags listed in the example above.
We should work out if the dest URL listed is the root of the lock or the
locked resource
that was directly affecting the operation.  We should possibly clarify
"protected URL"
status codes and what URL is depicted.

If none of the COPY/MOVE could be done due to a locked destination, then it
is acceptable,
although obviously not optimal, to simply return a 409 CONFLICT rather than
a
207 MULTISTATUS.

As for *source* locks...

Source lock error don't occur for COPY, just MOVE.  And the 423 LOCKED
status
code will be used instead of 409 CONFLICT.  More specifically...

In the case of a MOVE operations where a portion of the source is locked,
the server
is to respond with 207 MULTISTATUS and the body of that will simply
indicate the
locked source resources with a 423 LOCKED status.

<D:response>
   <D:href>/bla/...</D:href>
   <D:status>HTTP/1.1 423 LOCKED</D:status>
</D:response>

In the case that the request (source) URL is locked in a way that prevents
any other
MOVEs to occur, the server is free to simply reply with a 423 LOCKED rather
than
a 407 MULTISTATUS.

In all cases, minimization rules apply.  I will start a seperate thread for
Minimization
issues if necessary.

So does this sound acceptable to everyone?

J.

---

From: Elias Sinderson <[email-masked]>
Date: Sat, 04 May 2002 15:44:48 -0700

It seems reasonable to me, although the details are still to be worked 
out for a few small things.

Elias

---

From: "Julian Reschke" <[email-masked]>
Date: Sun, 5 May 2002 16:39:16 +0200

> From: [email-masked]
> [mailto:[email-masked]]On Behalf Of Jason Crawford
> Sent: Thursday, May 02, 2002 10:41 PM
> To: Clemm, Geoff
> Cc: WebDAV
> Subject: Issue: COPYMOVE_LOCKED_STATUS_CODE_CLARIFICATION
>
>
>

How about a more generic version:

<D:response>
    <D:href>/bla/source</D:href>
    <D:status>HTTP/1.1 409 CONFLICT</D:status>
    <D:responsedescription>
      <D:dependant-status>
        ... complete DAV:response element for resource causing the conflict
      </D:dependant-status>
   </D:responsedescription>
</D:response>

This would avoid having to define a whole new set of error conditions...

> ...