Closed Bug 392465 Opened 17 years ago Closed 16 years ago

Accept meeting invitation fails (has RECURRENCE-ID but no parent item)

Categories

(Calendar :: E-mail based Scheduling (iTIP/iMIP), defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: dozens, Assigned: dbo)

References

Details

Attachments

(4 files, 3 obsolete files)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Build Identifier: Thunderbird 20070728

I received a meeting invited generate by Outlook. Hitting the accept button in preview pane or a separate message window does nothing. The invitation is not accepted.

Is there a console view or something I can do to gather more information about what is (not) happening ?

Reproducible: Always

Steps to Reproduce:
1. click accept button on a meeting invite message.
2.
3.



Other outlook meetings have worked so I am not sure what is special about this message.
What version of Lightning do you use?

> Is there a console view or something I can do to gather more
> information about what is (not) happening ?

Yes. Please check menu Tools -> Error Console for related error messages.
Clicking accept once generates the following three messages

Error: [Exception... "'Component not initialized' when calling method: [calIItipItem::clone]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: file:///D:/Profiles/mgia0567.DS/Application%20Data/Thunderbird/Profiles/sqv764jn.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/js/calItipProcessor.js :: cipPII :: line 108"  data: no]
Source File: file:///D:/Profiles/mgia0567.DS/Application%20Data/Thunderbird/Profiles/sqv764jn.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/js/calItipProcessor.js
Line: 108

Error: [Exception... "'Component not initialized' when calling method: [calIItipItem::clone]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: file:///D:/Profiles/mgia0567.DS/Application%20Data/Thunderbird/Profiles/sqv764jn.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/js/calItipProcessor.js :: cipPII :: line 108"  data: no]
Source File: file:///D:/Profiles/mgia0567.DS/Application%20Data/Thunderbird/Profiles/sqv764jn.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/js/calItipProcessor.js
Line: 108

Error: uncaught exception: [Exception... "'Component not initialized' when calling method: [calIItipItem::clone]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: file:///D:/Profiles/mgia0567.DS/Application%20Data/Thunderbird/Profiles/sqv764jn.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/js/calItipProcessor.js :: cipPII :: line 108"  data: no]

I am using Lightning 0.5 for Thunderbird (build 2007062404)
Component: General → Lightning Only
QA Contact: general → lightning
Version: unspecified → Lightning 0.5
Same here with latest thunderbird version 2.0.0.6 (20070728) and Lightning 0.5 (build 2007062504)  on Linux x86.  Seems to happen most often with M$ Outlook.


Error: [Exception... "'Component not initialized' when calling method: [calIItipItem::clone]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: file:///home/someuser/.thunderbird/rgcgs2nn.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/js/calItipProcessor.js :: cipPII :: line 108"  data: no]
Source File: file:///home/someuser/.thunderbird/rgcgs2nn.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/js/calItipProcessor.js
Line: 108

Error: [Exception... "'Component not initialized' when calling method: [calIItipItem::clone]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: file:///home/someuser/.thunderbird/rgcgs2nn.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/js/calItipProcessor.js :: cipPII :: line 108"  data: no]
Source File: file:///home/someuser/.thunderbird/rgcgs2nn.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/js/calItipProcessor.js
Line: 108


Error: uncaught exception: [Exception... "'Component not initialized' when calling method: [calIItipItem::clone]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: file:///home/someuser/.thunderbird/rgcgs2nn.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/js/calItipProcessor.js :: cipPII :: line 108"  data: no]
I have the same problem with invitations coming from Outlook 2000. I have a distinct recollection that when I first installed Lightning accepts were working.
Now they are not working anymore. I have tested 3 versions:

- 0.5 under Windows XP

- 0.5 under Mac OS X

Here is the error I am getting there:

Error: uncaught exception: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIMessenger.messageServiceFromURI]"  nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)"  location: "JS frame :: chrome://lightning/content/imip-bar.js :: getMsgRecipient :: line 222"  data: no]

- 0.7 latest nightly build under Windows XP
Can someone attach an (anonymized) message source, please?
Attached one of my invites (anonymized)
I can confirm the same error as David in Comment #2 referencing line 108.

I am using Thunderbird v2.0.0.6 (20070728)
Lightning v0.5 (build 2007062404)

Win XP Pro SP2
I tried to add the invite through import, and nothing happens then either.  I will attach the anonymized invite below.
I can confirm the behaviour Jason reported. The event contains an Recurrence-ID. The parent is missing. This is the same problem as discussed in bug 357399. The behaviour is, however, different from what is reported there.
(Additionally, after unsuccefully trying to import, the calendar views are screwed. Just try to delete another event. There is no UI feedback until the views are refreshed)

The attached email from DK shows different behaviour. This can be imported! It can not be added via ITIP.



Status: UNCONFIRMED → NEW
Ever confirmed: true
Version: Lightning 0.5 → unspecified
I can confirm that the import workaround worked. I'll use this workaround for the time being until the bug is fixed. Here are the steps that I do:

1. Save an invite message as *.eml
2. Open it and copy calendar part: between BEGIN:VCALENDAR and END:VCALENDAR
3. Paste it into a new *.ics file
4. Calendar | Import 

Any advice on how to optimize this workaround would be appreciated.
(In reply to comment #13)
> 
> Any advice on how to optimize this workaround would be appreciated.
> 
You can save the attachment "meeting.ics" and import it afterwards. No need to copy the calendar part out of the eml file.
Well, I did not have meeting.ics in my invite. I looked closer and it turns out that ICS was hiding under the name "Part 1.1.1". So, yes, using this would reduce the hassle.

Thanks!
ICS file saved from Thunderbird which will not import using the Lightning calendar extension.  Using the "Accept" button produces the "component not initialized" error.
I updated from Lightning 0.5 to 0.7.  Previous to the upgrade, I was able to accept invitations without a problem, but I am now experiencing this issue (i.e., clicking on either "accept" or "decline" fails to have any result)In my case, the original invitation was created using Microsoft Exchange V6.5 directly (via its web interface).

Versions: 
* Lightning 0.7
* Thunderbird 2.0.0.6 (20070728)
* Windows XP (Build 2600.xpsp_sp2_qfe.070227-2300)
I upgraded to version 0.7 and am no longer able to accept invites via new message windows (when I double click on a message). However, if I load the message in the preview pane, it works fine.

I know I commented on this bug prior to v0.5 and it was fixed in the v0.5 release.  But now it's back.

Thanks
Thomas
Lightning 0.7 (with Provider 0.3.1)
Thunderbird 2.0.0.6
Mac OS 10.4.10 - Intel
Summary: The accept button on a message containing an invitation does nothing. → Accept meeting invitation fails (has RECURRENCE-ID but no parent item)
I have upgraded to Lightning 0.7 and am reporting that I still have the same issue. The bug is not fixed.
Flags: wanted-calendar0.8?
OS: Windows XP → All
Hardware: PC → All
I have the same problem after upgrading to 0.7 on linux and windows
jose
It would be good to have a solution for this in 0.8
Flags: wanted-calendar0.8? → wanted-calendar0.8+
Same here with invitations coming from Lotus Notes.
Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9
Lightning 0.7
Same here with:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
Thunderbird version 2.0.0.9 (20071031)
Lightning 0.7

I get the three error messages, when I click the accept button, but they are all on line 109.

NOTE: the first time I tried the accept button it worked.  It has not ever worked since.

Also, I did a bugzilla search for calItipProcessor.js, and it didn't find any of these bugs.  Shouldn't this bug have shown up?  Or is there some regular-expression magic that I should have used (given that the file:/// URI from the error message is different for everyone).
(In reply to comment #16)
> Created an attachment (id=285727) [details]
> non importing ics file crafted by OutLook
> 
> ICS file saved from Thunderbird which will not import using the Lightning
> calendar extension.  Using the "Accept" button produces the "component not
> initialized" error.
> 

Just fyi. I was able to work around this error by removing the RECURRENCE-ID field from the ICS file and re-sending it.

RECURRENCE-ID;TZID="GMT -0600 (Standard) / GMT -0500 (Daylight)":20071016T1
 30000

The solution for this would be to search for the parent item in the calendar in which the event would be added. If it's not there, delete the recurrence-id, if it's there, just add the event. 
Not going to happen for 0.8.
Flags: wanted-calendar0.8+ → wanted-calendar0.8-
Component: Lightning Only → E-mail based Scheduling (iTIP/iMIP)
QA Contact: lightning → email-scheduling
I think this is needed for a good iTIP/iMIP experience :)
Flags: wanted-calendar0.8- → wanted-calendar0.9+
Blocks: 437982
Flags: blocking-calendar0.9?
Whiteboard: [needs patch]
Not going to happen for 0.9.
Flags: blocking-calendar0.9? → blocking-calendar0.9-
Whiteboard: [needs patch]
Could someone retest with a recent nightly build? I'd like to know if the original failure situation still occurs or if the failure situation is now the same as in Bug 437982 / Bug 451542.
Problem still occurs with me. First noticed this day before yesterday. Would it be possible that someone somehow solves this problem? The work-around downloading the ics and adding it again doesn't really work either, it just adds an agenda for me.. 

It would truelly be great if this would be solved.
I've had this behaviour several times, but looking in the error console says that I am not a meeting attendee, so some instances of this behaviour may be a result of how the invite was initially created.

Feature request:  TB tell you when you are not an attendee and provide options to become one, if appropriate.
Depends on: 457203
Flags: wanted-calendar1.0?
Flags: wanted-calendar0.9+
Flags: blocking-calendar1.0?
Flags: blocking-calendar0.9-
Flags: wanted-calendar1.0? → wanted-calendar1.0+
Blocks: 357399
Flags: blocking-calendar1.0? → blocking-calendar1.0+
Attached patch patch - v1 (obsolete) β€” β€” Splinter Review
This patch fixes:
- setting the organizer properly on overridden instances (event dialog)
- adds EXRULE as major prop for SEQUENCE bumps
- fixes item proxy creation/cloning
- fixes bug 463195, proper item re-initialization
- removes usage of js NS_ASSERT, since it blocks the app
- fixes providers to properly handle adding occurrences (gdata excluded, wcap untested, sorry)
- fixes occurrence handling in itip code
- misc minor stuff

Thanks go to Andreas for testing multiple iterations of this patch!
Assignee: nobody → daniel.boelzle
Status: NEW → ASSIGNED
Attachment #347979 - Flags: review?(philipp)
Blocks: 463195
Blocks: 445483
Blocks: 464705
Blocks: 423861
Comment on attachment 347979 [details] [diff] [review]
patch - v1

> function calEvent() {
...
>+
>+    this.setProperty("CREATED", jsDateToDateTime(new Date()));
> }
Why does this need to be done in each constructor and not in initItemBase ?

>     getAttendees: function (countObj) {
>-        if (!this.mAttendees && this.mIsProxy && this.mParentItem) {
>-            this.mAttendees = this.mParentItem.getAttendees(countObj);
>-        }
So getting attendees on an occurrence won't return the paren't item's attendees? Make sure this is documented in the idl and doesn't have negative effect on the event dialog et al. The same goes for the other get* functions. This is also interesting for me with the alarms patch: should the same happen, i.e occurrence doesn't return alarms from parent?

>+++ b/calendar/test/unit/test_alarm.js
>@@ -354,17 +354,17 @@ function test_clone() {
>-                do_check_eq(alarm.item.getProperty("CREATED").icalString, newAlarm.item.getProperty("CREATED").icalString)
>+                do_check_eq(alarm.item.icalString, newAlarm.item.icalString)

?


r=philipp with comments considered.
Attachment #347979 - Flags: review?(philipp) → review+
(In reply to comment #36)
> (From update of attachment 347979 [details] [diff] [review])
> > function calEvent() {
> ...
> >+
> >+    this.setProperty("CREATED", jsDateToDateTime(new Date()));
> > }
> Why does this need to be done in each constructor and not in initItemBase ?

initItemBase() now also serves to (re-)init the object. There is no need to set a CREATED property in that phase, but only when creating new, empty items.

> >     getAttendees: function (countObj) {
> >-        if (!this.mAttendees && this.mIsProxy && this.mParentItem) {
> >-            this.mAttendees = this.mParentItem.getAttendees(countObj);
> >-        }
> So getting attendees on an occurrence won't return the paren't item's
> attendees? Make sure this is documented in the idl and doesn't have negative
> effect on the event dialog et al. The same goes for the other get* functions.
> This is also interesting for me with the alarms patch: should the same happen,
> i.e occurrence doesn't return alarms from parent?

The parent's arrays are now actually taken over when initializing the proxy; I've changed that code. But thinking again about it, it actually could cause trouble in case those are modified. I think I need to change that once more.

> >+++ b/calendar/test/unit/test_alarm.js
> >@@ -354,17 +354,17 @@ function test_clone() {
> >-                do_check_eq(alarm.item.getProperty("CREATED").icalString, newAlarm.item.getProperty("CREATED").icalString)
> >+                do_check_eq(alarm.item.icalString, newAlarm.item.icalString)
> 
> ?
I didn't get why you just tested the CREATED property instead of the whole item...
Attached patch patch - v2 (obsolete) β€” β€” Splinter Review
Sorry, I think the patch needs another round. I've changed the item cloning handling once more and will ask Andreas to spend another round of QA on it.
Please also have a look at getRelations; I changed the code to inherit relations from its parent. Hope that hasn't been added on purpose.
Finally, it fixes the current regression on using cal.itemIterator in calItipUtils.jsm, too.
Attachment #347979 - Attachment is obsolete: true
Attachment #348834 - Flags: review?(philipp)
Attached patch patch - v2, debitrotted (obsolete) β€” β€” Splinter Review
Attachment #348834 - Attachment is obsolete: true
Attachment #348934 - Flags: review?(philipp)
Attachment #348834 - Flags: review?(philipp)
Attached patch patch - v3 β€” β€” Splinter Review
Attachment #348934 - Attachment is obsolete: true
Attachment #349175 - Flags: review?(philipp)
Attachment #348934 - Flags: review?(philipp)
Comment on attachment 349175 [details] [diff] [review]
patch - v3

>+//         cal.LOG("stamp: " + dtstamp.getInTimezone(cal.UTC()).icalString);
Remove comment

>+    createProxy: function calEvent_createProxy(aRecurrenceId) {
>+        ASSERT(!this.mIsProxy, "Tried to create a proxy for an existing proxy!", true);
cal.ASSERT ?

>-        // xxx todo: Bug 463195 make sure object is properly reset
>+        this.mEndDate = undefined;
Why not = null ? I believe this really undefines it, i.e venkman will say its undefined when tracing errors/warnings.


>+        // xxx todo: the below two need proper cloning,
>+        //           calIAttachment::item, calIRelation::item are wrong
>+        m.mAttachments = this.getAttachments({});
>+        m.mRelations = this.getRelations({});
I believe doing this caused other problems, please see the bugs that introduced the concat([]) before checking in!


r=philipp with comments considered. Please also fix gdata, or at least file a bug to fix gdata!!
Attachment #349175 - Flags: review?(philipp) → review+
(In reply to comment #41)
> >-        // xxx todo: Bug 463195 make sure object is properly reset
> >+        this.mEndDate = undefined;
> Why not = null ? I believe this really undefines it, i.e venkman will say its
> undefined when tracing errors/warnings.
'undefined' serves as the late-init-only-once marker. In case endDate cannot be determined or someone explicitly sets it null, we won't run into the late-init code again.

> >+        // xxx todo: the below two need proper cloning,
> >+        //           calIAttachment::item, calIRelation::item are wrong
I've filed bug 466439 for this.

> >+        m.mAttachments = this.getAttachments({});
> >+        m.mRelations = this.getRelations({});
> I believe doing this caused other problems, please see the bugs that introduced
> the concat([]) before checking in!
I've had a look at the bustage fix of bug 446303, which seems to keep care to properly clone the array when cloning the calendar item. The above code calls getAttachments/getRelations which return cloned arrays.

> r=philipp with comments considered. Please also fix gdata, or at least file a
> bug to fix gdata!!
I've filed bug 466443 for this.


Pushed to comm-central <http://hg.mozilla.org/comm-central/rev/58c7c8816ed3>

-> FIXED
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Target Milestone: --- → 1.0
These bugs are likely targeted at Lightning 1.0b1, not Lightning 1.0. If this change was done in error, please adjust the target milestone to its correct value. To filter on this bugspam, you can use "lightning-10-target-move".
Target Milestone: 1.0 → 1.0b1
These bugs are likely targeted at Lightning 1.0b1, not Lightning 1.0. If this change was done in error, please adjust the target milestone to its correct value. To filter on this bugspam, you can use "lightning-10-target-move".
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: