(void) os->Notify((nsIStringBundle *) this, NS_STRBUNDLE_LOADED_TOPIC, nsnull);
(void) os->NotifyObservers((nsIStringBundle *) this, NS_STRBUNDLE_LOADED_TOPIC, nsnull);
nsStringBundle::OnStreamComplete(nsIStreamLoader* aLoader,                                 nsISupports* context,                                 nsresult aStatus,                                 PRUint32 stringLen,                                 const char* string){  nsXPIDLCString uriSpec;  if (NS_FAILED(aStatus)) {  // print a load error on bad status#if defined(DEBUG)    if (aLoader) {      nsCOMPtr<nsIRequest> request;      aLoader->GetRequest(getter_AddRefs(request));      nsCOMPtr<nsIChannel> channel(do_QueryInterface(request));      if (channel) {        nsCOMPtr<nsIURI> uri;        channel->GetURI(getter_AddRefs(uri));        if (uri) {            uri->GetSpec(getter_Copies(uriSpec));            printf("\n -->nsStringBundle::OnStreamComplete: Failed to load %s\n",                    uriSpec ? (const char *) uriSpec : "");        }      }    }#endif    return aStatus;  }  nsresult rv;  nsCOMPtr<nsISupports> stringStreamSupports;  rv = NS_NewByteInputStream(getter_AddRefs(stringStreamSupports),                              string, stringLen);  if (NS_FAILED(rv)) return rv;        nsCOMPtr<nsIInputStream> in = do_QueryInterface(stringStreamSupports, &rv);  if (NS_FAILED(rv)) return rv;  mProps = do_CreateInstance(kPersistentPropertiesCID, &rv);  NS_ENSURE_SUCCESS(rv, rv);    // load the stream  rv = mProps->Load(in);    //   // notify  if (NS_SUCCEEDED(rv)) {    mLoaded = PR_TRUE;    // observer notification    nsCOMPtr<nsIObserverService> os = do_GetService(NS_OBSERVERSERVICE_CONTRACTID);    if (os)      (void) os->Notify((nsIStringBundle *) this,                  NS_STRBUNDLE_LOADED_TOPIC, nsnull);#if defined(DEBUG_tao)  printf("\n --> nsStringBundle::OnStreamComplete: end sending NOTIFICATIONS!!\n");#endif  }  return rv;}