[omniORB] omniORB 4.1.1 enum sequence problems

Chris chris.299792458 at gmail.com
Sat Jan 26 13:25:43 GMT 2008


Hi all,

I am having trouble with the switch to omniORB 4.1.1. Some calls to
create_dyn_any which caused no trouble in previous versions suddenly
cause assertion failures in omniORB. The problem seems to be connected
to calling create_dyn_any with sequences containing enums.

I have narrowed it down to cases like in the following code:

                CORBA::Object_var obj =
orb->resolve_initial_references("RootPOA");
                PortableServer::POA_var poa = PortableServer::POA::_narrow(obj);
                CORBA::Object_var da_obj =
orb->resolve_initial_references("DynAnyFactory");
                DynamicAny::DynAnyFactory_var daFactory=
DynamicAny::DynAnyFactory::_narrow(da_obj);

                test::Struct1_seq s_seq;
                s_seq.length(1);
                s_seq[0].e1=test::type1;

                CORBA::Any tmp_any;
                tmp_any <<= s_seq;
                DynamicAny::DynAny_var dv_test =
daFactory->create_dyn_any(tmp_any);


The last line with the create_dyn_any call generates the following message:

omniORB: Assertion failed.  This indicates a bug in the application
using omniORB, or maybe in omniORB itself.

 file: tcParser.cc
 line: 297
 info: 0


The idl for the example is:

interface test {
  enum enum1 {
    type1,
    type2
  };

 struct Struct1 {
    enum1 e1;
  };

 typedef sequence <Struct1> Struct1_seq;
};


Hints to what is going on would be greatly appreciated.

/ Chris



More information about the omniORB-list mailing list