context:   getUpdateInfo: function(aDS)  {    var info = null;    try    {      var rdf = Components.classes["@mozilla.org/rdf/rdf-service;1"].        getService(Components.interfaces.nsIRDFService);      var src = "urn:updates:latest";      info = new Object;      info.registryName = this.getTarget(rdf, aDS, src, "registryName");      info.version = this.getTarget(rdf, aDS, src, "version");      info.URL = this.getTarget(rdf, aDS, src, "URL");      info.productName = this.getTarget(rdf, aDS, src, "productName");    }    catch (ex)    {      info = null;      debug("Exception getting update info: " + ex);      // NOTE: If the (possibly remote) datasource doesn't exist       //       or fails to load the first |GetTarget()| call will fail      //       bringing us to this exception handler.  In turn, we       //       will fail silently.  Testing has revealed that for a       //       non-existent datasource (invalid URI) the       //       |nsIRDFXMLSinkObserver.onEndLoad()| is called instead of      //       |nsIRDFXMLSinkObserver.onError()| as one may expect.  In       //       addition, if we QI the aSink parameter of |onEndLoad()|       //       to an |nsIRDFRemoteDataSource| and check the |loaded|       //       boolean, it reflects true so we can't use that.  The       //       safe way to know we have failed to load the datasource       //       is by handling the first exception as we are doing now.    }    return info;  },
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8395/55a5e5ddbf4a7e9103b995d808c4466085d2123f/nsUpdateNotifier.js/buggy/xpfe/components/updates/src/nsUpdateNotifier.js