if (NS_FAILED(rv)) { rv = aProtocol->LoadUrl(aImapUrl, aConsumer); } else {  }
nsImapIncomingServer::GetImapConnectionAndLoadUrl(nsIEventQueue*                                                  aClientEventQueue,                                                  nsIImapUrl* aImapUrl,                                                  nsIUrlListener*                                                  aUrlListener,                                                  nsISupports* aConsumer,                                                  nsIURL** aURL){    nsresult rv = NS_OK;    nsIImapProtocol* aProtocol = nsnull;        rv = CreateImapConnection(aClientEventQueue, aImapUrl, &aProtocol);    if (NS_FAILED(rv)) return rv;    if (aUrlListener)        aImapUrl->RegisterListener(aUrlListener);    if (aProtocol)    {        rv = aProtocol->LoadUrl(aImapUrl, aConsumer);    }    else    {   // unable to get an imap connection to run the url; add to the url        // queue        PR_CEnterMonitor(this);        m_urlQueue->AppendElement(aImapUrl);        m_urlConsumers.AppendElement((void*)aConsumer);        NS_IF_ADDREF(aConsumer);        PR_CExitMonitor(this);    }    if (aURL)    {        *aURL = aImapUrl;        NS_IF_RELEASE(*aURL);    }    return rv;}