[omniORB] No exception thrown when failing to call oneway method

Gary D. Duzan gdd0@gte.com
Fri, 04 Aug 2000 09:26:06 -0400


   The thing is that oneway calls are rather restricted in the
ability to return exceptions. If the client ORB detects a problem,
it can raise an exception, but once the request is sent to the
server, the client forgets about it, so there is no context to
which an exception could be delivered. In this case, it might be
nice if the client were able to detect that you had an invalid enum
value, but in general a proper test could be fairly expensive, so
it is understandable that it isn't done.
   Your best bet would be to drop the oneway from the IDL if you
can, then implement your own threading on the server side as
necessary. Otherwise, you'll just have to write perfect code all
the time. :-)

					Gary Duzan
					GTE Laboratories
					Verizon Communications



In Message <F95Vkl4AU1O6YalkXh300005b9e@hotmail.com> ,
   "Viktor Mikho" <vvmikho@hotmail.com> wrote:

=>Well, I do not know how to qualify this one - a bug or not a bug.
=>Some may say that all is my fault and I tend to agree.
=>Very simple situation (NT, omniORB 2.8): oneway function is called that 
=>takes a structure as 'in' parameter:
=>
=>oneway void uploadStateChanged(in UploadRequestT ur);
=>
=>Probably I need to add that in my case method is called on the callback 
=>object but I am not sure if it is important.
=>
=>I did not initialise one of the UploadRequestT members (of enum type). As a 
=>result uploadStateChanged() is called with no visible problems (and no 
=>exceptions) but is never ever invoked on the servant side.
=>
=>I think, it would be nice to throw some sort of exception (because 
=>apparently there was a marshalling problem).
=>
=>Thanks,
=>
=>Viktor
=>
=>
=>________________________________________________________________________
=>Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com
=>
=>