- From: Marc Siegel <mlsiegel ll mit edu>
- To: orbit-list gnome org
- Subject: IOR parsing
- Date: Wed, 26 May 2004 09:26:40 -0400
When parsing IOR's with ORBit, the "file://" form does not work. This
form works in MICO and TAO.
When parsing IOR's with ORBit, if the .ref file is not present, an
uncaught exception occurs. In MICO and TAO, IIRC, a "nil" CORBA object
is returned that can then be tested with CORBA::is_nil() to give a
graceful error message.
MIT Lincoln Laboratory, Group 63
mlsiegel ll mit edu . (781)981-5434
--- Begin Message ---
Marc Siegel wrote:
- From: Bowie Owens <bowie owens csiro au>
- To: Marc Siegel <mlsiegel ll mit edu>
- Cc: orbitcpp-list gnome org
- Subject: Re: Abort at program end
- Date: Wed, 26 May 2004 10:23:54 +1000
Well, the main() is so simple for this client at this stage, I 'll
just paste it below. As far as I can tell, there wasnt enough done
here to unref things additional times or anything like that, but if
you spot a problem please tell me.
The problem is that ORB::destroy() is not getting called on the ORB
object. Other ORB implementations do this for you automatically. We
don't. I'll see if I can fix this. I doubt it will be as easy as it
sounds. If you add an orb->destroy() your code will not assert. Except
you need to clean up all your references (destruct all your _var's)
before you call destroy. One way to achieve this is with blocks:
ORB_var orb = ...
Object_var obj = ...
Even easier than that is to not clean up and change the ORB_var to an
ORB_ptr. It's always a good idea to try and clean up though.
ALSO - notice that I am reading the IOR file into a string to get the
ref. This is a more minor nit, but the other ORB's support the the
file:// notation for passing IOR refs and read in the files themselves.
Can't help you there. If the C binding doesn't support it, the C++
binding doesn't either. The C++ binding is just a wrapper.
ALSO - if the .ref file is not present, this program exits with
"Aborted", which I assume means an uncaught exception. I think the
correct behavior, as exhibited by the other ORB's, is to return a
CORBA nil object so that the if-block below will function.
Yes the Aborted is going to be an uncaught exception. As for the
behaviour of string_to_object in the when there is a bad IOR passed it
looks like the right thing to do is throw a BAD_PARAM which is what MICO
does and backed up by the following doc:
CSIRO Mathematical & Information Sciences
phone : +61 3 9545 8055
fax : +61 3 9545 8080
mobile : 0425 729 875
email : Bowie Owens csiro au
--- End Message ---
] [Thread Prev