rem: listener.onGetFreeBusyTimes( Components.results.NS_OK, requestId, calId, ret.length, ret ); } if (LOG_LEVEL > 0) { this.log( "calId=" + calId + ", " + getWcapRequestStatusString(xml), "getFreeBusyTimes_resp()" ); } } catch (exc) { const calIWcapErrors = Components.interfaces.calIWcapErrors; switch (getResultCode(exc)) { case calIWcapErrors.WCAP_NO_ERRNO: case calIWcapErrors.WCAP_ACCESS_DENIED_TO_CALENDAR: case calIWcapErrors.WCAP_CALENDAR_DOES_NOT_EXIST: this.log("ignored error: " + errorToString(exc), "getFreeBusyTimes_resp()"); break; default: this.notifyError( exc ); break; } if (listener != null) listener.onGetFreeBusyTimes( exc, requestId, calId, 0, [] ); } }, 
add: if (listener) listener.onRequestResult(request, data); }, 
context:     getFreeBusyTimes_resp:    function( wcapResponse, calId, listener, requestId )    {        try {            var xml = wcapResponse.data; // first statement, may throw            if (listener != null) {                var ret = [];                var nodeList = xml.getElementsByTagName("FB");                for ( var i = 0; i < nodeList.length; ++i ) {                    var node = nodeList.item(i);                    var str = node.textContent;                    var slash = str.indexOf( '/' );                    var start = getDatetimeFromIcalString(str.substr(0, slash));                    var end = getDatetimeFromIcalString(str.substr(slash + 1));                    var entry = {                        isBusyEntry:                        (node.attributes.getNamedItem("FBTYPE").nodeValue                         == "BUSY"),                        dtRangeStart: start,                        dtRangeEnd: end                    };                    ret.push( entry );                }                listener.onGetFreeBusyTimes(                    Components.results.NS_OK,                    requestId, calId, ret.length, ret );            }            if (LOG_LEVEL > 0) {                this.log( "calId=" + calId + ", " +                          getWcapRequestStatusString(xml),                          "getFreeBusyTimes_resp()" );            }        }        catch (exc) {            const calIWcapErrors = Components.interfaces.calIWcapErrors;            switch (getResultCode(exc)) {            case calIWcapErrors.WCAP_NO_ERRNO: // workaround            case calIWcapErrors.WCAP_ACCESS_DENIED_TO_CALENDAR:            case calIWcapErrors.WCAP_CALENDAR_DOES_NOT_EXIST:                this.log("ignored error: " + errorToString(exc),                         "getFreeBusyTimes_resp()");                break;            default:                this.notifyError( exc );                break;            }            if (listener != null)                listener.onGetFreeBusyTimes( exc, requestId, calId, 0, [] );        }    },
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/8395/a8adf4992620da379274cea3395ed3099b6769d6/calWcapSession.js/buggy/calendar/providers/wcap/calWcapSession.js