Closed
Bug 470934
Opened 16 years ago
Closed 15 years ago
Better handling of server-side deleted calendars when getting the ctag
Categories
(Calendar :: Provider: CalDAV, defect)
Calendar
Provider: CalDAV
Tracking
(Not tracked)
RESOLVED
FIXED
1.0b1
People
(Reporter: lmarcotte, Assigned: lmarcotte)
Details
Attachments
(1 file, 2 obsolete files)
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.5) Gecko/2008120121 Firefox/3.0.5 Build Identifier: Lightning 0.9 When getting the ctag of a CalDAV calendar, we might obtain a 404 as the calendar might have been deleted from the server since we last checked for the ctag. We should better handle this and also, if we even run into this situation (get a 404) and then, get a 207 (since the calendar was re-created), we should also handle this. I suggest the following modification in safeRefresh(). We currently have : try { dump("CalDAV: Status " + aContext.responseStatus + " checking ctag for calendar " + thisCalendar.name); } catch (ex) { dump("CalDAV: Error without status on checking ctag for calendar " + thisCalendar.name); } and we should have: try { dump("CalDAV: Status " + aContext.responseStatus + " checking ctag for calendar " + thisCalendar.name); if (aContext.responseStatus == 404) { LOG("Disabled CalDAV calendar due to 404 error code."); thisCalendar.completeCheckServerInfo(aChangeLogListener, Components.interfaces.calIErrors.DAV_DAV_NOT_CALDAV); return; } else if (aContext.responseStatus == 207 && thisCalendar.disabled) { thisCalendar.reenable(aChangeLogListener); return; } } catch (ex) { dump("CalDAV: Error without status on checking ctag for calendar " + thisCalendar.name); } and reenable() should look like: reenable: function caldav_reenable(aChangeLogListener) { // we reset our calendar status this.setProperty("currentStatus", Components.results.NS_OK); // check if maybe our calendar has become available this.checkDavResourceType(aChangeLogListener); } Reproducible: Always Steps to Reproduce: 1. 2. 3.
Updated•16 years ago
|
Whiteboard: [needs patch for code in comment#0]
Assignee | ||
Comment 1•15 years ago
|
||
Attachment #363576 -
Flags: review?(philipp)
Updated•15 years ago
|
Assignee: nobody → lmarcotte
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Whiteboard: [needs patch for code in comment#0]
Updated•15 years ago
|
Attachment #363576 -
Flags: review?(philipp) → review-
Comment 2•15 years ago
|
||
Comment on attachment 363576 [details] [diff] [review] Proposed fix I'd prefer having currentStatus be reset when checkDavResourceType actually succeeds. If we do it as you proposed, then the status icon will go away, then come back again if the calendar is still gone missing. maybe the solution would be to set currentStatus = NS_OK in the first chunk of your patch (instead of calling reenable), and have checkDavResourceType take care of also setting it to NS_OK if everything succeeds. r- for now.
Comment 3•15 years ago
|
||
Ludovic, this can serve as a base for your new patch. Please do some testing to see if it makes sense this way (with and without the calendar being cached).
Attachment #363576 -
Attachment is obsolete: true
Updated•15 years ago
|
Attachment #363588 -
Flags: review?(lmarcotte)
Assignee | ||
Comment 4•15 years ago
|
||
Attachment #375380 -
Flags: review?(philipp)
Updated•15 years ago
|
Attachment #363588 -
Attachment is obsolete: true
Attachment #363588 -
Flags: review?(lmarcotte)
Updated•15 years ago
|
Attachment #375380 -
Flags: review?(philipp) → review+
Comment 5•15 years ago
|
||
Comment on attachment 375380 [details]
Philip's patch, reviewed.
Looks good, r=philipp
Comment 6•15 years ago
|
||
Pushed to comm-central <http://hg.mozilla.org/comm-central/rev/3c26a22f1549> -> FIXED
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Target Milestone: --- → 1.0
Updated•14 years ago
|
Target Milestone: 1.0 → 1.0b1
You need to log in
before you can comment on or make changes to this bug.
Description
•