("rdfxml[%p] refresh(%s) %sblocking", this, spec.get(), (aBlocking ? "" : "non"))); #endif
("rdfxml[%p] refresh(%s) %sblocking", this, mOriginalURLSpec.get(), (aBlocking ? "" : "non")));
RDFXMLDataSourceImpl::Refresh(PRBool aBlocking){#ifdef PR_LOGGING    nsCAutoString spec;    if (mURL) {        mURL->GetSpec(spec);    }    PR_LOG(gLog, PR_LOG_ALWAYS,           ("rdfxml[%p] refresh(%s) %sblocking", this, spec.get(), (aBlocking ? "" : "non")));#endif        // 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, spec.get()));        if (aBlocking) {            NS_WARNING("blocking load requested when async load pending");            return NS_ERROR_FAILURE;        }        else {            return NS_OK;        }    }    if (! mURL)        return NS_ERROR_FAILURE;    nsCOMPtr<nsIRDFXMLParser> parser = do_CreateInstance("@mozilla.org/rdf/xml-parser;1");    if (! parser)        return NS_ERROR_FAILURE;    nsresult rv = parser->ParseAsync(this, mURL, getter_AddRefs(mListener));    if (NS_FAILED(rv)) return rv;    if (aBlocking) {        NS_TIMELINE_START_TIMER("rdf blocking parse");        rv = BlockingParse(mURL, this);        NS_TIMELINE_STOP_TIMER("rdf blocking parse");        NS_TIMELINE_MARK_TIMER("rdf blocking parse");        mListener = 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;}