("rdfxml[%p] refresh(%s) a load was pending", this, mURLSpec));
("rdfxml[%p] refresh(%s) a load was pending", this, mOriginalURLSpec.get()));
RDFXMLDataSourceImpl::Refresh(PRBool aBlocking){    PR_LOG(gLog, PR_LOG_ALWAYS,           ("rdfxml[%p] refresh(%s) %sblocking", this, mURLSpec, (aBlocking ? "" : "non")));    // If an asynchronous load is already pending, then just let it do    // the honors.    if (IsLoading()) {        PR_LOG(gLog, PR_LOG_ALWAYS,               ("rdfxml[%p] refresh(%s) a load was pending", this, mURLSpec));        if (aBlocking) {            NS_WARNING("blocking load requested when async load pending");            return NS_ERROR_FAILURE;        }        else {            return NS_OK;        }    }    nsresult rv;    nsCOMPtr<nsIRDFContentSink> sink;    rv = nsComponentManager::CreateInstance(kRDFContentSinkCID,                                            nsnull,                                            NS_GET_IID(nsIRDFContentSink),                                            getter_AddRefs(sink));    if (NS_FAILED(rv)) return rv;    rv = sink->Init(mURL);    if (NS_FAILED(rv)) return rv;    // We set the content sink's data source directly to our in-memory    // store. This allows the initial content to be generated "directly".    rv = sink->SetDataSource(this);    if (NS_FAILED(rv)) return rv;    nsCOMPtr<nsIParser> parser;    rv = nsComponentManager::CreateInstance(kParserCID,                                            nsnull,                                            kIParserIID,                                            getter_AddRefs(parser));    if (NS_FAILED(rv)) return rv;    nsAutoString charset(NS_LITERAL_STRING("UTF-8"));    parser->SetDocumentCharset(charset, kCharsetFromDocTypeDefault);    parser->SetContentSink(sink);    rv = parser->QueryInterface(NS_GET_IID(nsIStreamListener), getter_AddRefs(mParser));    if (NS_FAILED(rv)) return rv;    rv = parser->Parse(mURL);    if (NS_FAILED(rv)) return rv;    if (aBlocking) {        rv = BlockingParse(mURL, this);        mParser = nsnull; // release the parser        if (NS_FAILED(rv)) return rv;    }    else {        // Null LoadGroup ?        rv = NS_OpenURI(this, nsnull, mURL, nsnull);        if (NS_FAILED(rv)) return rv;        // So we don't try to issue two asynchronous loads at once.        mLoadState = eLoadState_Pending;    }    return NS_OK;}