rem: var res = new WebDavResource(aChannel.URI); var webSvc = Components.classes['@mozilla.org/webdav/service;1'] .getService(Components.interfaces.nsIWebDAVService);  webSvc.getResourceProperties(res, 1, ['DAV: getetag'], false, this, null, null); 
add:   if (isOnBranch) { var res = new WebDavResource(aChannel.URI); var webSvc = Components.classes['@mozilla.org/webdav/service;1'] .getService(Components.interfaces.nsIWebDAVService);  webSvc.getResourceProperties(res, 1, ['DAV: getetag'], false, this, null, null); } else {   this.mEtag = null; } 
context:     onAfterPut: function(aChannel) {        var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel);        try {            this.mEtag = httpchannel.getResponseHeader("ETag");        } catch(e) {            // There was no ETag header on the response. This means that            // putting is not atomic. This is bad. Race conditions can happen,            // because there is a time in which we don't know the right            // etag.            // Try to do the best we can, by immediatly getting the etag.            var res = new WebDavResource(aChannel.URI);            var webSvc = Components.classes['@mozilla.org/webdav/service;1']                                   .getService(Components.interfaces.nsIWebDAVService);            // The namespace is 'DAV:', not just 'DAV'.            webSvc.getResourceProperties(res, 1, ['DAV: getetag'], false,                                         this, null, null);        }        return true;    },
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8395/76f483126a5772b441eb87e43ec69f6b7c2132f8/calICSCalendar.js/buggy/calendar/providers/ics/calICSCalendar.js