Chris
2008-01-26 18:25:32 UTC
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
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