[vbox-dev] XPCOM error NS_ERROR_FACTORY_NOT_REGISTERED

Eduardo Robles Elvira edulix at gmail.com
Sat May 23 11:57:40 GMT 2009


On Fri, Apr 24, 2009 at 12:30 PM, Eduardo Robles Elvira
<edulix at gmail.com> wrote:
> Hola!
>
> Precisely I'm working in a patch to make virtualbox host-only and
> internal networks work in "mesh" mode. So that I can configure each
> interface connected to a network to which other network interfaces is
> it directly connected to. I want to do that for testing using
> virtuabox my final project which is an implementation of the AODV mesh
> networks routing protocol. Yesterday I "finished" the patch i.e. it
> compiles and in theory it should work but I didn't have enough time
> yet to test it. I attach it to this email so that others can review
> the patch and/or help me developing it. My final aim is that it works
> and it gets integrated in trunk :P. Any comments about this patch are
> welcome!
>
> Regards,
>      Eduardo Robles Elvira.
>

Hi everyone,

This is a follow-up of  my patch for mesh networks. I'm testing it,
but I get the XPCOM error "NS_ERROR_FACTORY_NOT_REGISTERED". The error
shows up when I try to start a VM, when I click configure, when I
fininsh the new VM assistant, etc. The error shows up in this code:

src/VBox/Frontends/VirtualBox/src/VBoxSelectorWnd.cpp:981
    void VBoxSelectorWnd::vmStart():
        session.createInstance (CLSID_Session);
        if (session.isNull())
        {
            vboxProblem().cannotOpenSession (session); <<<<<<<<<<<<
            return;
        }
src/VBox/Frontends/VirtualBox/src/VBoxSelectorWnd.cpp:844
    void VBoxSelectorWnd::vmSettings():
        // open a direct session to modify VM settings
        QString id = item->id();
        CSession session = vboxGlobal().openSession (id);
        if (session.isNull())
            return;

        src/VBox/Frontends/VirtualBox/src/VBoxGlobal.cpp:2363
            CSession VBoxGlobal::openSession (const QString &aId, bool
aExisting /* = false */)
            {
                CSession session;
                session.createInstance (CLSID_Session);
                if (session.isNull())
                {
                    vboxProblem().cannotOpenSession (session); <<<<<<<<<<
                    return session;
                }

As you can see in the patch, I register a new XPCOM interface in
src/VBox/Main/xpcom/module.cpp as I was told:

+NS_DECL_CLASSINFO(NetworkAdapterRef)
+NS_IMPL_THREADSAFE_ISUPPORTS1_CI(NetworkAdapterRef, INetworkAdapterRef)

If I comment those two lines the error doesn't show up but well then
NetworkAdapter related things obviosly don't work fine (rest of the
patch is dependent of this). So.. I don't know what's happening, can
someone please try to enlighten  me?

Thanks in advance,
    Eduardo Robles Elvira.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: meshnetworks3.patch
Type: text/x-patch
Size: 48924 bytes
Desc: not available
URL: <http://www.virtualbox.org/pipermail/vbox-dev/attachments/20090523/bc2ff206/attachment.bin>


More information about the vbox-dev mailing list