medabdellahi / google-caldav-issues

Automatically exported from code.google.com/p/google-caldav-issues
0 stars 0 forks source link

PROPFIND returns different etag than GET for recurring events with changed occurrences #17

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
PROPFIND /calendar/dav/user/events/ HTTP/1.1
Host: www.google.com:443
Content-Length: 160
Depth: 1
Content-Type: text/xml; charset="utf-8"

<?xml version='1.0' encoding='UTF-8'?>
<ns0:propfind xmlns:ns0="DAV:"><ns0:prop><ns0:getetag /><ns0:resourcetype
/><ns0:displayname /></ns0:prop></ns0:propfind>

gives:

...
  <D:response>
    <D:href>/calendar/dav/user/events/FOO.ics</D:href>
    <D:propstat>
      <D:status>HTTP/1.1 200 OK</D:status>
      <D:prop>
        <D:getetag>164017-63353925498</D:getetag>
        <D:resourcetype />
      </D:prop>
    </D:propstat>
    <D:propstat>
      <D:status>HTTP/1.1 404 Not Found</D:status>
      <D:prop>
        <ns0:displayname xmlns:ns0="DAV:" />
      </D:prop>
    </D:propstat>
  </D:response>
...

whereas:

GET /calendar/dav/mercutioverona%40gmail.com/events/FOO.ics HTTP/1.1
Host: www.google.com:443
Authorization: Basic bWVyY3V0aW92ZXJvbmFAZ21haWwuY29tOmI1ZWU3NDYy
Content-Length: 0

Gives:

HTTP/1.1 200 OK
DAV: 1, calendar-access, calendar-schedule
Content-Type: text/calendar
ETag: 63353925498

Original issue reported on code.google.com by mercutio...@gmail.com on 9 Aug 2008 at 1:06

GoogleCodeExporter commented 9 years ago
hmm.  Looks like it's time to change my google password, I thought I'd removed 
all my
Authorization: headers :(

Original comment by mercutio...@gmail.com on 9 Aug 2008 at 1:07

GoogleCodeExporter commented 9 years ago
Are you still able to reproduce this? Looks like this was fixed last week. At 
least
that's what I can see for my calendar.

Original comment by dset...@gmail.com on 18 Aug 2008 at 7:04

GoogleCodeExporter commented 9 years ago
Yes, looks good. Except that I know run into Issue 20 :-) Thanks.

Original comment by helge.h...@googlemail.com on 18 Aug 2008 at 7:23

GoogleCodeExporter commented 9 years ago
Fixed & Verified based on comments 2 and 3 and personal testing.

Original comment by kewi...@gmail.com on 19 Aug 2008 at 5:38

GoogleCodeExporter commented 9 years ago
Still happens to me for recurring event w/ changed occurences.

Original comment by filip.na...@gmail.com on 28 Sep 2008 at 8:43

GoogleCodeExporter commented 9 years ago

Original comment by kewi...@gmail.com on 29 Sep 2008 at 7:27

GoogleCodeExporter commented 9 years ago
filip: are you still able to reproduce this? i've just tested with creating a 
rec.
event & changing one occurence, etags are identical. please reopen with traffic 
dumps
if you still experience the problem. best if the calendar would be shared 
(readonly)
with dimas@google.com. thanks!

Original comment by di...@google.com on 2 Oct 2008 at 12:37

GoogleCodeExporter commented 9 years ago
Yes, I am still able to reproduce this and I shared the calendar with you as
suggested. The PROPFIND request issued is

<?xml version="1.0" encoding="utf-8"?><D:propfind 
xmlns:D="DAV:"><D:prop><D:getetag
/></D:prop></D:propfind>

...and the response is...

<?xml version="1.0" encoding="UTF-8"?>
<D:multistatus xmlns:D="DAV:">
  ...
  <D:response>

<D:href>/calendar/dav/filip.navara%40gmail.com/events/bm6u0t8lgg1pr6jdtg1grkteb0
%40google.com.ics</D:href>
    <D:propstat>
      <D:status>HTTP/1.1 200 OK</D:status>
      <D:prop>
        <D:getetag>209725729640419426-63358321305</D:getetag>
      </D:prop>
    </D:propstat>
  </D:response>
  ...
</D:multistatus>

...but the ETag returned on the GET request is "764883602497-63358321305".

Original comment by filip.na...@gmail.com on 3 Oct 2008 at 2:18

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I'm having the same issue described here. The steps to reproduce the issue are:

1. Run a calendar-query report, requesting etags for all events:

<C:calendar-query xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:D="DAV:">
<D:prop>
<D:getetag/>
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR">
<C:comp-filter name="VEVENT"/>
</C:comp-filter>
</C:filter>
</C:calendar-query>

2. Query response:

<D:multistatus xmlns:D="DAV:">
<D:response>
<D:href>/calendar/dav/javierferrerop%40gmail.com/events/fi3k1gkt7gi25s2935emh7mg
gg%40google.com.ics</D:href>
<D:propstat>
<D:prop>
<D:getetag>"63454226473"</D:getetag>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>

3. Now I run a calendar multi-get to retrieve the event entirely:

<C:calendar-multiget xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:D="DAV:">
<D:prop>
<D:getetag/>
<C:calendar-data/>
</D:prop>
<D:href>/calendar/dav/javierferrerop%40gmail.com/events/fi3k1gkt7gi25s2935emh7mg
gg%40google.com.ics</D:href>
</C:calendar-multiget>

4. Query response:

<D:multistatus xmlns:D="DAV:">
<D:response>
<D:href>/calendar/dav/javierferrerop%40gmail.com/events/fi3k1gkt7gi25s2935emh7mg
gg%40google.com.ics</D:href>
<D:propstat>
<D:prop>
<C:calendar-data xmlns:C="urn:ietf:params:xml:ns:caldav">BEGIN:VCALENDAR
<!-- Calendar data removed for simplicity -->
END:VCALENDAR</C:calendar-data>
<D:getetag>"63454226567"</D:getetag>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>

As you can see the ETAG returned for the same resource is different if I run 
the calendar-query or the calendar-multiget queries. The issue only seems to 
happen for recurrent events.

Original comment by javierfe...@gmail.com on 2 Nov 2011 at 9:47