User Agent: Mozilla/5.0 (X11; SunOS i86pc; rv:9.0.1) Gecko/20100101 Firefox/9.0.1 Build ID: 20120110095621 Steps to reproduce: Update tasks e.g. status to complete on oracle stbeehive caldav server. Actual results: An error is returned: <HTML><HEAD><TITLE>400 Bad Request</TITLE></HEAD><BODY><H1>400 Bad Request</H1>oracle.ocs.tm.icalendar.exception.ICalParseException: CalAddress parameter value needs to be DQuoted.(Parameter=SENT-BY)(Parameter in comp=VTODO.prop=ORGANIZER)</BODY></HTML> Source File: resource://calendar/modules/calUtils.jsm -> file:///usr/lib/thunderbird/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/calendar-js/calCalendarManager.js Line: 1108 Expected results: This is a regression compare to Lightning 1.0b5.
The SENT-BY info is: ORGANIZER;SENT-BYfirstname.lastname@example.org:mailto:email@example.com Compares to 1.0b6 calItipUtils.jsm where is setting "SENT-BY" property, it seems caused by 586276.
sentbyparam = "SENT-BY" "=" DQUOTE cal-address DQUOTE cal-address should be a MAILTO URL. So I think the line should be ORGANIZER;SENT-BY="mailto:firstname.lastname@example.org":mailto:email@example.com
Yeah, the quotes should be there according to spec, although its pretty strict of the server to reject it just because of the quotes. I wonder if this is enforced by libical somehow or if we have to do it ourselves.
This seem to have been introduced by the fix for bug 719016, The dquote are necessary because the param value should contain a scheme (ie: a "mailto:"), since the ":" also indicates the value of the property, a parameter containing ":" must be enclosed in dquotes.
I concur (with Simon) and I would expect libical to handle this as the caller should not actually worry about the underlying constraints on the output format. But then, of course, libical will probably not be fixed until the end of time, so I guess a work around is acceptable...
We could fix this with bug jsical...
Created attachment 593556 [details] [diff] [review] Fix - v1 This fixes the beehive issue, makes sure SENT-BY is only added when its needed, and only returns the configured identity in getUserIdentities so that when SENT-BY is required, the right address is added.
Pushed to comm-central changeset bcf13b17ca3c
Backported to releases/comm-aurora changeset 2b548cb6ca5c
Backported to releases/comm-beta changeset 9a54a0149a3f
Backported to releases/comm-release changeset eeecf7cd201b for Lightning 1.2.1