Bug 824423 - Unhandled exception NS_ERROR_NOT_AVAILABLE on write failure to WebDAV calendar. r=philipp
--- a/calendar/providers/ics/calICSCalendar.js
+++ b/calendar/providers/ics/calICSCalendar.js
@@ -399,23 +399,28 @@ calICSCalendar.prototype = {
.createInstance(Components.interfaces.nsIScriptableInputStream);
scriptableInputStream.init(inStream);
scriptableInputStream.read(-1);
},
onStopRequest: function(request, ctxt, status, errorMsg)
{
ctxt = ctxt.wrappedJSObject;
let httpChannel;
+ let requestSucceeded = false;
try {
httpChannel = request.QueryInterface(Components.interfaces.nsIHttpChannel);
- cal.LOG("[calICSCalendar] channel.requestSucceeded: " + httpChannel.requestSucceeded);
+ requestSucceeded = httpChannel.requestSucceeded;
} catch(e) {
}
- if ((httpChannel && !httpChannel.requestSucceeded) ||
+ if (httpChannel) {
+ cal.LOG("[calICSCalendar] channel.requestSucceeded: " + requestSucceeded);
+ }
+
+ if ((httpChannel && !requestSucceeded) ||
(!httpChannel && !Components.isSuccessCode(request.status))) {
ctxt.mObserver.onError(this.superCalendar,
Components.isSuccessCode(request.status)
? calIErrors.DAV_PUT_ERROR
: request.status,
"Publishing the calendar file failed\n" +
"Status code: "+request.status.toString(16)+"\n");
ctxt.mObserver.onError(this.superCalendar, calIErrors.MODIFICATION_FAILED, "");