Franzen, Holger
2007-05-26 20:54:58 UTC
Hi everybody,
I encountered an marshalling failure for sequences of my XMLData type
passed in an CORBA::Any container.
The method call failes with exception minor code:
MARSHAL_PassEndOfMessage
omniORB: throw MARSHAL from GIOP_C.cc:276 (NO,MARSHAL_PassEndOfMessage)
Both client and servant use the same idl. I appended the XMLData.idl and
the traces and logs of client and servant. I'm using omniORB-4.1.0.
Here is an snippet of the testcase i implemented:
[XMLDataSeqAnyTestCase.idl]
...
module zoa {
interface XMLDataSeqAnyTestCase {
void callWithAny(in Any data)
raises(Exception);
};
};
...
[XMLDataSeqAnyTestCaseImpl.cc]
...
void zoa::XMLDataSeqAnyTestCaseImpl::callWithAny(const CORBA::Any &data)
throw(Exception, CORBA::SystemException)
{
// nothing: won't get called for Any with XMLDataSeq
}
...
[XMLDataSeqAnyTestCaseCallee.cc]
...
// our dummy xmldata element
// no attributes no children but does not matter either
XMLData dummy;
dummy.type = XMLDATA_ELEMENT_NODE;
dummy.name = CORBA::string_dup("myname");
dummy.value = CORBA::string_dup("myvalue");
// create xmldatasequence and fill with dummy
// element
XMLDataSeq_var dataSeq = new XMLDataSeq();
dataSeq->length(4);
dataSeq.inout()[0] = dummy;
dataSeq.inout()[1] = dummy;
dataSeq.inout()[2] = dummy;
dataSeq.inout()[3] = dummy;
// set into any
CORBA::Any any;
any <<= dataSeq.in();
// EnvironmentAnyTestCase_var testCase
// alwayse failes with MARSHAL_PassEndOfMessage
testCase->callWithAny(any);
...
//just an XMLData element test
CORBA::Any any2;
any2 <<= dummy;
// runs and data can be retrieved at the servant
testCase->callWithAny(any2);
...
I'm a little bit lost - any suggestions?
Many thanks in advance,
Holger.
------------------
Holger Franzen
holger at k681.cc
k681.cc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: zoaXMLData.idl
Type: text/x-csrc
Size: 1957 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20070526/68c55560/zoaXMLData.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xmldataseqanytestcasecallee.log
Type: text/x-log
Size: 9044 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20070526/68c55560/xmldataseqanytestcasecallee.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xmldataseqanytestcaseimpl.log
Type: text/x-log
Size: 6005 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20070526/68c55560/xmldataseqanytestcaseimpl.bin
I encountered an marshalling failure for sequences of my XMLData type
passed in an CORBA::Any container.
The method call failes with exception minor code:
MARSHAL_PassEndOfMessage
omniORB: throw MARSHAL from GIOP_C.cc:276 (NO,MARSHAL_PassEndOfMessage)
Both client and servant use the same idl. I appended the XMLData.idl and
the traces and logs of client and servant. I'm using omniORB-4.1.0.
Here is an snippet of the testcase i implemented:
[XMLDataSeqAnyTestCase.idl]
...
module zoa {
interface XMLDataSeqAnyTestCase {
void callWithAny(in Any data)
raises(Exception);
};
};
...
[XMLDataSeqAnyTestCaseImpl.cc]
...
void zoa::XMLDataSeqAnyTestCaseImpl::callWithAny(const CORBA::Any &data)
throw(Exception, CORBA::SystemException)
{
// nothing: won't get called for Any with XMLDataSeq
}
...
[XMLDataSeqAnyTestCaseCallee.cc]
...
// our dummy xmldata element
// no attributes no children but does not matter either
XMLData dummy;
dummy.type = XMLDATA_ELEMENT_NODE;
dummy.name = CORBA::string_dup("myname");
dummy.value = CORBA::string_dup("myvalue");
// create xmldatasequence and fill with dummy
// element
XMLDataSeq_var dataSeq = new XMLDataSeq();
dataSeq->length(4);
dataSeq.inout()[0] = dummy;
dataSeq.inout()[1] = dummy;
dataSeq.inout()[2] = dummy;
dataSeq.inout()[3] = dummy;
// set into any
CORBA::Any any;
any <<= dataSeq.in();
// EnvironmentAnyTestCase_var testCase
// alwayse failes with MARSHAL_PassEndOfMessage
testCase->callWithAny(any);
...
//just an XMLData element test
CORBA::Any any2;
any2 <<= dummy;
// runs and data can be retrieved at the servant
testCase->callWithAny(any2);
...
I'm a little bit lost - any suggestions?
Many thanks in advance,
Holger.
------------------
Holger Franzen
holger at k681.cc
k681.cc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: zoaXMLData.idl
Type: text/x-csrc
Size: 1957 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20070526/68c55560/zoaXMLData.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xmldataseqanytestcasecallee.log
Type: text/x-log
Size: 9044 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20070526/68c55560/xmldataseqanytestcasecallee.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xmldataseqanytestcaseimpl.log
Type: text/x-log
Size: 6005 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20070526/68c55560/xmldataseqanytestcaseimpl.bin