RE: Bindings, Locks, and MOVE

I'll just respond to take what Judith and Geoff just said and apply it directly
to Kevin's example...

  <kw>
  Ahhh  OK so I take back some of my last post.  I am beginning to see clearer
  now.

  Correct me if I am wrong.

  /a/b.html and /x/y.html both point to resource R via BINDS.


  1)  I take out an "Exclusive Write" lock L1 on /a/b.html.  Once this is
  done, user2

  - can READ /a/b.html and /x/y.html (GET)
  - cannot DELETE /a/b.html (LOCKED)
  - can DELETE /x/y.html (will simply remove the binding)
  - cannot PROPPATCH /a/b.html OR /x/y.html (Resource is LOCKED)
  - cannot PUT /a/b.html OR /x/y.html (Resource is LOCKED)
  - can COPY /a/b.html and /x/y.html
  - cannot MOVE /a/b.html (LOCKED)
  - can MOVE /x/y.html (will simply move the binding URI, resource not
  changed)
  - cannot LOCK /x/y.html OR /a/b.html (LOCKED)
  - can PROPFIND /x/y.html and /a/b.html (its a write lock)
  - cannot MOVE or COPY TO /x/y.html or /a/b.html (Destination resource is
    LOCKED) Actually MOVE/COPY TO /x/y.html makes an interesting point of do you
    A) Do the delete first which UNBinds the resource and then complete the
    MOVE/COPY, or B) fail with resource LOCKED.  I think you have to do B
    otherwise you end up with 2 resources where you used to have 1.
  <kw>

<jlc>
I think the point of COPY is to create more resources.  So unless I
misunderstand you, the COPY/MOVE to /x/y.html would ba allowed.  In the case of
MOVE... I think you end up with the same number that you started with.  IOW's
both operations would be allowed.

BTW, I think it's important to highlight the fact that as currently defined, the
destination of a COPY/DELETE is implicitly DELETED as the first substep of
carrying out the method.
</jlc>


  <kw>
  2)  I take out a "Depth-Infinity Exclusive Write" lock L2 on /a.  Once this
  is done, user2

  - can READ /a/b.html and /x/y.html (GET)
  - cannot DELETE /a/b.html (LOCKED)
  - can DELETE /x/y.html (will simply remove the binding)
  - cannot PROPPATCH /a/b.html OR /x/y.html (Resource is LOCKED)
  - cannot PUT /a/b.html OR /x/y.html (Resource is LOCKED)
  - can COPY /a/b.html and /x/y.html
  - cannot MOVE /a/b.html (LOCKED)
  - can MOVE /x/y.html (will simply move the binding URI, resource not
  changed)
  - cannot LOCK /x/y.html or /a/b.html (LOCKED)
  - can PROPFIND /x/y.html and /a/b.html (its a write lock)
  - cannot MOVE or COPY TO /x/y.html or /a/b.html (Destination resource is
  LOCKED)
  </kw>

<jlc>
Same as above.  I believe you can copy/move to /x/y.html
</jlc>


  <kw>
  3)  I take out a "Depth-Zero Exclusive Write" lock L3 on /a.  Once this is
  done, user2

  - can READ /a/b.html and /x/y.html (GET)
  - cannot DELETE /a/b.html (/a's namespace is LOCKED)
  - can DELETE /x/y.html (will simply remove the binding)
  - can PROPPATCH /a/b.html and /x/y.html (the resource is NOT Locked)
  - can PUT /a/b.html and /x/y.html (the resource is NOT Locked)
  - can COPY /a/b.html and /x/y.html
  - cannot MOVE /a/b.html (/a's namespace is LOCKED)
  - can move /x/y.html (will simply move the binding URI, resource not
  changed)
  - can LOCK /x/y.html and /a/b.html (they are not Locked)
  - can PROPFIND /x/y.html and /a/b.html (its a write lock)
  - can MOVE and COPY TO /x/y.html and /a/b.html (resource not locked)
  <kw>

<jlc>
I believe that final MOVE/COPY is not allowed against /a/b.html because it's
preceeded by an implicit delete which affects that state of /a/ which is locked.
</jlc>

Received on Wednesday, 15 September 1999 14:03:36 UTC