Closed Bug 406801 Opened 17 years ago Closed 17 years ago

Import and display of event with foreign timezone fails

Categories

(Calendar :: Provider: Local Storage, defect)

defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: ssitter, Assigned: dbo)

References

Details

(Keywords: regression)

Attachments

(2 files, 1 obsolete file)

Import and display of event with foreign timezone fails

Steps to reproduce:
1. Start Sunbird with clean profile
2. Import attached testcase into the default storage calendar
3. Switch view to 17-Sep-2006
4. Restart Sunbird

Actual Results:
after 3) Event is not displayed in view only in unifinder.
after 4) Event is not displayed anywhere

Error Console:
Error: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [calIDateTime.getInTimezone]"  nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)"  location: "JS frame :: file:///Y://sunbird/js/calStorageCalendar.js :: newDateTime :: line 188"  data: no]
Source File: file:///Y://sunbird/js/calStorageCalendar.js Line: 188

Error: Assert failed: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [calIDateTime.getInTimezone]"  nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)"  location: "JS frame :: file:///Y://sunbird/js/calStorageCalendar.js :: newDateTime :: line 188"  data: no]
    1: ASSERT
    2: 
    3: getItems
    4: refreshEventTree
    5: uO_onEndBatch
Source File: file:///Y://sunbird/js/calUtils.js Line: 764

Error: Assert failed: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [calIDateTime.getInTimezone]"  nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)"  location: "JS frame :: file:///Y:/sunbird/js/calStorageCalendar.js :: newDateTime :: line 188"  data: no]
    1: ASSERT
    2: 
    3: getItems
    4: refreshEventTree
    5: prepareCalendarUnifinder
Source File: file:///Y:/sunbird/js/calUtils.js Line: 764

Error: Assert failed: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [calIDateTime.getInTimezone]"  nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)"  location: "JS frame :: file:///Y:/sunbird/js/calStorageCalendar.js :: newDateTime :: line 188"  data: no]
    1: ASSERT
    2: 
    3: getItems
    4: popRefreshQueue
    5: refresh
Source File: file:///Y:/sunbird/js/calUtils.js Line: 764
Attached file ics testcase
testcase was based on the calendar from bug 331915.
Regression Range:
 WORKS in Sunbird 0.8pre (2007-12-03-04)
 FAILS in Sunbird 0.8pre (2007-12-04-05)
Most probably regressed by Bug 400950.
Blocks: 400950
Keywords: regression
Attached patch fix (obsolete) — Splinter Review
- fixes calITimezone::provider to be null for timezones coming from parsed ics (files)
- fixes some compiler warnings
- storage provider: tries to map foreign timezones to our Olson ones (timezone service), else stores in UTC
Assignee: nobody → daniel.boelzle
Status: NEW → ASSIGNED
Attachment #291646 - Flags: review?(philipp)
Attached patch fixSplinter Review
Oops, removed fix for bug 406804 from patch...

BTW: great catches, Stefan!
Attachment #291646 - Attachment is obsolete: true
Attachment #291647 - Flags: review?(philipp)
Attachment #291646 - Flags: review?(philipp)
Flags: blocking-calendar0.8+
OS: Windows 2000 → All
Hardware: PC → All
Version: Mozilla 1.8 Branch → unspecified
Comment on attachment 291647 [details] [diff] [review]
fix


>-                tz = new calTimezone(tzComp, tzid);
>+                tz = new calTimezone(0, tzComp, tzid);
Here you create a new calTimezone without flags. Just to be more elaborate in the source, maybe you should describe what happens without flags (i.e add an enum IS_WHATEVER = 0). Also, maybe you could change the argument order so that flags defaults to 0.


>-    calTimezone(calIIcalComponent * component,
>+    enum {
>+        IS_UTC = 1,
>+        IS_FLOATING = 2,
>+        IS_INTRINSIC = 4
>+    };
>+
>+    calTimezone(int flags,
>+                calIIcalComponent * component,

r=philipp
Attachment #291647 - Flags: review?(philipp) → review+
(In reply to comment #5)
Using these flags now:

    enum {
        IS_FOREIGN   = 0,
        IS_INTRINSIC = 1,
        IS_UTC       = 2,
        IS_FLOATING  = 4
    };

Checked in on HEAD and MOZILLA_1_8_BRANCH.
=> FIXED
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Target Milestone: --- → 0.8
Verified using Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1.12pre) Gecko/2007121105 Calendar/0.8pre.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.