rem: this.mObserver.onEndBatch(); this.mObserver.onLoad(); this.locked = false; this.processQueue(); 
add: this.unlock(); 
context:     refresh: function() {        // Lock other changes to the item list.        this.locked = true;        // set to prevent writing after loading, without any changes        this.loading = true;        var ioService = Components.classes["@mozilla.org/network/io-service;1"]                                  .getService(Components.interfaces.nsIIOService);        var channel = ioService.newChannelFromURI(fixupUri(this.mUri));        channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE;        channel.notificationCallbacks = this;        // Allow the hook to do its work, like a performing a quick check to        // see if the remote file really changed. Might save a lot of time        this.mHooks.onBeforeGet(channel);        var streamLoader = Components.classes["@mozilla.org/network/stream-loader;1"]                                     .createInstance(Components.interfaces.nsIStreamLoader);        try {            streamLoader.init(channel, this, this);        } catch(e) {            // File not found: a new calendar. No problem.            this.mObserver.onEndBatch();            this.mObserver.onLoad();            this.locked = false;            this.processQueue();        }    },
meta: 5459	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/5459/01bf648181eac36b1b284f1973bbc0f6deb744e4/calICSCalendar.js/buggy/calendar/providers/ics/calICSCalendar.js