[PolyORB-users] Error passing float sequence to server

Will Normand wnormand at gmail.com
Mon Apr 11 15:51:26 CEST 2005


Hi,

I am receiving the following error:
raised CONSTRAINT_ERROR :
polyorb-sequences-unbounded-corba_helper.adb:117 range check failed

This occurs when my client tries to call a procedure on the server.
The procedure passes a sequence of floats to the server.

>From the client code:

declare
        Seq : Corbabenchmarks.FloatSeq;
begin
        Seq := Corbabenchmarks.To_Sequence(Payload);
        Corbabenchmarks.Replace_Element(Seq, Payload, 1.0);
        Corbabenchmarks.Server.FloatIn(Myserver, Seq);
end;

The IDL file includes:

module corbaBenchmarks {
        typedef sequence<float> FloatSeq;
        typedef sequence<long> IntSeq;
        interface Server {
                void floatIn(in FloatSeq data);
                void intIn(in IntSeq data);
        }
}

The strange thing is that this error only occurs with certain payloads
(length of float sequence).  The majority of sequence lengths work.
This varies depending on which Name Server is used!  I have tried
po_cos_naming and the Orbacus Name Server.

Also, even if the Server is no longer running --- though still
registered on the Name Server, so a reference can be returned --- this
error still occurs, so CORBA.COMM_FAILURE is not raised.  So the error
seems to occur in the call Corbabenchmarks.Server.FloatIn(Myserver,
Seq), but before the procedure is actually called on the server.

Finally, similar tests with sequences of Integers work perfectly.

Is this a bug with PolyORB?  Does anyone have a solution?

Thanks,

Will Normand


More information about the PolyORB-users mailing list