[omniORB] System Exceptions in GIOP 1.1

Paul Haesler omniorb at phaesler.org
Wed May 5 21:02:09 BST 2004


Omniorbists,

1) BUG REPORT

giopImpl11::sendSystemException in 4.0.3 has 
a serious bug that causes garbage packets to be 
sent for System Exceptions.  By comparing with the 
equivalent giopImpl12 code (which works), you can 
clearly see that the buffer is not being initialised.  
The missing line is:

	outputNewMessage(g);

which should appear immediately before:

  char* hdr = (char*) g->pd_currentOutputBuffer +
                      g->pd_currentOutputBuffer->start;

2) CONGRATULATIONS

As part of the project for which I found this bug, I've
had cause to use a several different ORB implementations,
both open-source and proprietary (hence the need to
speak GIOP 1.1).  And the above bug not-withstanding,
I must say that I have been extremely impressed with
omniORB.  It is flexible, efficient and powerful and 
obviously superior to the closed-source implementations
I have had to use. The source code is well 
structured and commented and a pleasure to work with,
especially given the confusing mess of a standard that
it implements.  My hearty congratulations to all the
team.

3) NIT-PICKING

I do have a couple of stylistic comments though, which
you are welcome to ignore.

Firstly, I am one of those fuddy-duddies who thinks that
matching pairs of braces should be vertically aligned, but
I recognise this as a religious issue and I'm not going to
make a big deal about it. :)

Secondly, I am uncomfortable with the use of the >>= 
operator to insert into cdrStreams.  I really think you should
be using << to be consistent with other standard library
streams, and your own logger streams.  The way you
use >>= isn't even consistent with CORBA's rather bizarre
Any insertion/extraction operators - surely the cdrStream
should at least be on the left.

Anyway, keep up the good work.

Regards,

Paul Haesler.



More information about the omniORB-list mailing list