[omniORB] omniORB 4.1.1 enum sequence problems

Tim Theisen ttheisen at tomotherapy.com
Sun Jan 27 09:13:33 GMT 2008


Chris,

The sounds very similar to a problem reported earlier.  Perhaps, the
patch supplied in this posting will help:
http://www.omniorb-support.com/pipermail/omniorb-list/2007-October/02895
2.html

...Tim
--
       Tim Theisen                     Lead Research Software Engineer
Phone: +1 608 824 2848                 TomoTherapy Incorporated
  Fax: +1 608 824 2996                 1240 Deming Way
  Web: http://www.tomotherapy.com      Madison, WI 53717-1954 
-----Original Message-----
From: omniorb-list-bounces at omniorb-support.com
[mailto:omniorb-list-bounces at omniorb-support.com] On Behalf Of Chris
Sent: Saturday, January 26, 2008 06:26
To: omniorb-list at omniorb-support.com
Subject: [omniORB] omniORB 4.1.1 enum sequence problems

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

_______________________________________________
omniORB-list mailing list
omniORB-list at omniorb-support.com
http://www.omniorb-support.com/mailman/listinfo/omniorb-list



More information about the omniORB-list mailing list