Note: There are a few cases of duplicates in user autocompletion which are being worked on.

VTODO with RRULE but no DTSTART causes exception, missing entries

VERIFIED FIXED in 0.7

Status

Calendar
Internal Components
VERIFIED FIXED
10 years ago
10 years ago

People

(Reporter: dbo, Assigned: dbo)

Tracking

unspecified
Bug Flags:
blocking-calendar0.7 +

Details

Attachments

(3 attachments)

(Assignee)

Description

10 years ago
Created attachment 267416 [details]
sample

Invalid pointer exception in calRecurrenceRule::GetOccurrences.

DTSTART is optional for VTODOs, RFC 2445 is IMO unclear whether RRULE is allowed in that case. We should fallback using DUE if no DTSTART is present, expanding the rule. IMO that has been the intention of such VTODOs.
(Assignee)

Updated

10 years ago
Summary: VTODO without DTSTART causes exception, missing entries → VTODO with RRULE but no DTSTART causes exception, missing entries
(Assignee)

Comment 1

10 years ago
Created attachment 267417 [details] [diff] [review]
fallback to DUE if no DTSTART is present
Assignee: nobody → daniel.boelzle
Status: NEW → ASSIGNED
Attachment #267417 - Flags: review?(mvl)

Updated

10 years ago
Attachment #267416 - Attachment mime type: application/octet-stream → text/plain

Comment 2

10 years ago
Adding the error messages as shown in console to make it possible to search and reference them:

Error: Import error: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [calIRecurrenceItem.getOccurrences]"  nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)"  location: "JS frame :: file:///D:/sunbird/js/calRecurrenceInfo.js :: anonymous :: line 432"  data: no]
Source file: chrome://calendar/content/import-export.js
Line: 196

Error: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [calIRecurrenceItem.getOccurrences]
Source file: file:///D:/sunbird/js/calRecurrenceInfo.js
Line: 432
Comment on attachment 267417 [details] [diff] [review]
fallback to DUE if no DTSTART is present

r=mvl
Attachment #267417 - Flags: review?(mvl) → review+

Updated

10 years ago
Whiteboard: [checkin needed after 0.5]
(Assignee)

Comment 4

10 years ago
Checked in on HEAD and MOZILLA_1_8_BRANCH.
Status: ASSIGNED → RESOLVED
Last Resolved: 10 years ago
Resolution: --- → FIXED
Whiteboard: [checkin needed after 0.5]
Target Milestone: --- → 0.7
(Assignee)

Comment 5

10 years ago
Unfortunately bug 386502 has caused a regression:

Error: [Exception... "Component returned failure code: 0x80004003 
(NS_ERROR_INVALID_POINTER) [calIDateTime.compare]" nsresult: "0x80004003 
(NS_ERROR_INVALID_POINTER)" location: "JS frame :: 
... 
:: checkRange :: line 372" data: no]
Source File: 
... calRecurrenceInfo.js
Line: 372
Status: RESOLVED → REOPENED
Flags: blocking-calendar0.7+
Resolution: FIXED → ---
(Assignee)

Comment 6

10 years ago
Created attachment 275745 [details] [diff] [review]
fallback to DUE if no DTSTART is present

- fallback to DUE if no DTSTART available, make either one mandatory
- checkRange now might also return DUE: I've renamed variable dtstart to occDate
Attachment #275745 - Flags: review?(sebo.moz)
(Assignee)

Updated

10 years ago
Status: REOPENED → ASSIGNED

Comment 7

10 years ago
The patch looks fine. A comment in the code regarding the fallback might be nice. 

Just two more comments:
1. I wonder if there are other places in the file that need to be changed to fully support recurring task with no start date set. A quick search revealed two more places where item.getProperty("DTSTART") is used. I think you know better than me if they require additional care.

2. Month and MultiWeek View do not support this fallback. A follow up should be filed (if it not yet exists).

Sorry for having caused this regression :(

Updated

10 years ago
Attachment #275745 - Flags: review?(sebo.moz) → review+
(Assignee)

Comment 8

10 years ago
(In reply to comment #7)
> 1. I wonder if there are other places in the file that need to be changed to
> fully support recurring task with no start date set. A quick search revealed
> two more places where item.getProperty("DTSTART") is used. I think you know
> better than me if they require additional care.
I filed follow-up bug 391495 for that.

> 2. Month and MultiWeek View do not support this fallback. A follow up should be
> filed (if it not yet exists).
Could you please research that?

> Sorry for having caused this regression :(
No problem at all; I've reviewed your patch ;)
Thanks to Andreas finding this during bug verification.
(Assignee)

Comment 9

10 years ago
Checked in on HEAD and MOZILLA_1_8_BRANCH.
Status: ASSIGNED → RESOLVED
Last Resolved: 10 years ago10 years ago
Resolution: --- → FIXED

Comment 10

10 years ago
Verified in Lightning and Sunbird (20070809 builds) -> task is fixed.
Status: RESOLVED → VERIFIED

Comment 11

10 years ago
(In reply to comment #8)
> Could you please research that?
Bug 349529 is already filed for this. Actually with this fix, the only task-with-only-due-date-set that shows up in the views is the parent item of a recurring event (and probably exceptions thereof).
You need to log in before you can comment on or make changes to this bug.