[omniORB] Exception problem

Attila Pletyak attila.pletyak@anemo.com
Wed, 25 Jul 2001 11:09:44 +0200


Look on the omniORB list of the recent days. That looks to be a gcc 3.0 bug.

Sincerely,

Attila Pletyak

Leandro Fanzone wrote:

>I'm using omniORB 3.0.4 on a RH 7.1 Linux box, with gcc 3.0. When I have
>a method that throws an exception, and on the client side I catch it, I
>can do it only five times before it hangs. I can reproduce the problem
>modifying slightly the echo example:
>
>interface Echo
>{
>    exception E{};
>    string echoString(in string mesg) raises(E);
>};
>
>In the server side:
>
>char* Echo=5Fi::echoString(const char* mesg)
>{
>    throw Echo::E();
>}
>
>In the client side:
>
>for (unsigned i =3D 0; i < 10; i++)
>    try
>    {
>        CORBA::String=5Fvar dest =3D e->echoString(src);
>    }
>    catch(Echo::E)
>    {
>        cout << "Catch " << i << endl;
>    }
>
>The output is as follows:
>
>Catch 0
>Catch 1
>Catch 2
>Catch 3
>Catch 4
>
>and then the program hangs in the next call. It doesn't abort, it is
>just waiting. I attach the complete sample files (they are exactly the
>echo example with the modified lines above) because they have no
>important weight.
>I wait anxiously for your answer; please tell me whether I'm doing
>something wrong or is just a compiler problem.
>Thank you for your help,
>
>Leandro Fanzone
>Compa=F1=EDa Hasar
>Buenos Aires
>Argentina
>
> throwtest.zip
>
> Content-Type:
>
> application/x-zip-compressed
> Content-Encoding:
>
> base64
>
>