Subject: COPY and bindings II

From: "Nevermann, Dr., Peter" <[email-masked]>
Date: Sun, 17 Aug 2003 14:57:46 +0200

A while ago I asked, whether - assuming no resource at destination to
overwrite - COPY should preserve bindings, i.e. should COPY yield 1) or 2)
(see below):

1)
      |u1     --COPY-->    |u2
      C                    C'  
    a/  \b               a/  \b 
    C1  C2               Ca  Cb 
    x\  /y              x|    |y
      R                  Rx  Ry

2)
      |u1     --COPY-->    |u2    
      C                    C'  
    a/  \b               a/  \b 
    C1  C2               Ca  Cb 
    x\  /y               x\  /y
      R                    R'

Most of you voted for 2).

Now, assuming there *were* resources at destination to overwrite - take
diagram 1) for visualization, where C', Ca, Cb, Rx, Ry all existed
beforehand - I assume that COPY u1->u2 would result in Rx and Ry both being
updated with content + dead-properties from R.

And, again using diagram 1) and assuming all shown resources existed
beforehand, what happens if we do the COPY the other way round, i.e. COPY
u2->u1? The Binding spec states in section 2.3, last paragraph:
"If a COPY causes one or more existing resources to be updated, the bindings
to those resources MUST be unaffected by the COPY."
Is it then correct, that while copying the C'-tree over the C-tree, resource
R is first updated by Rx and then again by Ry (or the other way round)? That
is, one of Rx or Ry "wins" in updating R? Hm???

Regards,
Peter

---

From: "Nevermann, Dr., Peter" <[email-masked]>
Date: Fri, 22 Aug 2003 14:03:35 +0200

On behalf of Geoff Clemm:

Peter:  This keeps bouncing when I try to send it to the 
[email-masked] mailing list ... could you try posting it for me?

Thanks,
Geoff

----- Forwarded by Geoffrey M Clemm/Lexington/IBM on 08/21/2003 04:15 PM 
-----

Geoffrey M Clemm/Lexington/IBM
08/20/2003 06:08 PM

To
"Nevermann, Dr., Peter" <[email-masked]>
cc
"[email-masked]'" <[email-masked]>, 
[email-masked]
Subject
Re: COPY and bindings II

Yes, we need language to cover the case Peter describes.  I suggest we
add the sentence:

If because of multiple bindings to a resource, more than one source
resource updates a single destination resource, the order of the
updates is server defined.

Also, I notices that the current description of COPY does not fully cover
the case where the COPY creates a new copy of a resource when there were
multiple bindings to that resource in the source of the copy.  To remedy
this omission, I propose that we replace the final paragraph of section 
2.3
of the Binding protocol with:

If a COPY request would cause a new resource to be created
as a copy of an existing resource, and that COPY request
has already created a copy of that existing resource,
the COPY request instead creates another binding to the
previous copy, instead of creating a new resource.
Cheers,
Geoff

Peter wrote on 08/17/2003 08:57:46 AM:

> A while ago I asked, whether - assuming no resource at destination 
> to overwrite - COPY should preserve bindings, i.e. should COPY yield
> 1) or 2) (see below):
> 1) 
>       |u1     --COPY-->    |u2 
>       C                    C' 
>     a/  \b               a/  \b 
>     C1  C2               Ca  Cb 
>     x\  /y              x|    |y 
>       R                  Rx  Ry 
> 2) 
>       |u1     --COPY-->    |u2 
>       C                    C' 
>     a/  \b               a/  \b 
>     C1  C2               Ca  Cb 
>     x\  /y               x\  /y 
>       R                    R' 
> Now, assuming there *were* resources at destination to overwrite - 
> take diagram 1) for visualization, where C', Ca, Cb, Rx, Ry all 
> existed beforehand - I assume that COPY u1->u2 would result in Rx 
> and Ry both being updated with content + dead-properties from R.
> beforehand, what happens if we do the COPY the other way round, i.e.
> COPY u2->u1? The Binding spec states in section 2.3, last paragraph:
> "If a COPY causes one or more existing resources to be updated, the 
> bindings to those resources MUST be unaffected by the COPY."
> Is it then correct, that while copying the C'-tree over the C-tree, 
> resource R is first updated by Rx and then again by Ry (or the other
> way round)? That is, one of Rx or Ry "wins" in updating R? Hm???
> Regards, 
> Peter