[omniORB] omniORB4 SystemException minor code bug?

Norrie Quinn norrie.quinn@tumbleweed.com
Tue Aug 20 23:36:01 2002


Hi,

I have noticed some strange behaviour with omniORB SystemException minor
codes and their descriptions.

With no naming service running, I run the following code with omniORB4 and
get a TRANSIENT SystemException as expected.

try {
    CORBA::ORB_var orb = CORBA::ORB_init( argc, argv );
    CORBA::Object_var root_object =
        orb->resolve_initial_references("NameService");
    CosNaming::NamingContext_var root_context =
        CosNaming::NamingContext::_narrow(root_object);
    ...
catch ( CORBA::SystemException& e ) {
    ...
    cerr << e.minor() << " :" << e.NP_minorString() << endl;
}

However, calling minor() on the exception returns an omniORB specific
COMM_FAILURE minor code instead of a TRANSIENT minor code.  This also means
that a call to NP_minorString() returns no description.

I know that this is not the most portable method of getting more detail on a
SystemException, but unless I have missed something this looks like a bug in
the internal omniORB method is_COMM_FAILURE_minor().

Regards
Norrie