[omniORB] Bad infuence of IFR on omniNames (Windows)

Poilpret Jean Francois jfpoilpret@hn.vnn.vn
Mon, 20 Sep 1999 02:01:34 +0700


Hi all omniOrbers !

It seems I just found a bug on the way omniORB (2.8.0 pre 1) bootstraps =
on Windows (NT4).
I just added an Interface Repository to my config (for testing).
To be recognized by omniORB, I added an entry "INTERFACE_REPOSITORY" to =
the Windows registry, with the IOR of my IFR.
The problem is that now, I cannot get the Root NamingContext from =
omniNames !!!!

I just browsed through the initFile.cc and found the following lines =
that seemed strange to me:

>>>>
    if (CORBA::is_nil(NameService) && =
CORBA::is_nil(InterfaceRepository)) {
        if ((char*)bootstrapAgentHostname !=3D 0) {
            omniInitialReferences::singleton()
            ->initialise_bootstrap_agent(bootstrapAgentHostname,
                                            bootstrapAgentPort);
<<<<
in method initFile::initialize()

The problem here is that when you put an entry for INTERFACE_REPOSITORY, =
the global test fails.
HOWEVER, at this time the NameService is not yet initialized (because I =
used the "ORBInitialHost" and "ORBInitialPort" entries (instead of the =
"NAMESERVICE " one).
So in this precise case, the Naming Service reference will never be =
initialized.

I had no time to search deeper in the sources (I am not sure this is =
actually this part of the source which is faulty, it's just the part of =
code that catched my eyes while browsing).

The work-around is not to use the ORBInitialHost and ORBInitialPort =
entries in the registry, but use the NAMESERVICE entry instead (in this =
case, don't forget to remove the two previous entries completely).

Since I haven't tried omni 2.8 pre2 yet, I apologize if this problem has =
already been fixed.

Thanks to all you guys at ATT

    Jean-Francois