[omniORB] omniORB and TAO

Андрей Пучин pouchin at gmail.com
Fri Jun 17 16:07:35 BST 2005


Hi, Duncan!

I've compiled idl with -Wbfactories.

One more bug (TAO?) with valuetypes.

May be it's my fault, but i try to patch pyValueType.cc
"static void real_marshalPyObjectValue(cdrValueChunkStream& stream, PyObject*
d_o, PyObject* a_o)"
and set derived=1.

op1 method on TAO server can't properly handle recieved arguments despite of lack of MARSHALL
exception.

First argument is ok, but the others are garbage.
Is it pointed bag or not?

Thanks.

Friday, June 17, 2005, 2:30:23 PM, you wrote:

> On Friday 17 June, pouchin at gmail.com wrote:

>> I'm using omniORB(4.1, omniORBpy 3x) at client and ACE (5.3.1) TAO
>> (1.3) at server.

> [...]
>> When i call op1 on servant, i got MARSHALL exception. All parameters filled
>> correctly.

> It's either a bug in TAO, or just that you have failed to register a
> valuetype factory. If it is that you have failed to register a valuetype

> factory, TAO is still subtly wrong because it is using a TAO specific
> exception minor code (0x544100) instead of the OMG standard code it
> should use (0x4f4d0001).

>> I've noticed that omniORBpy doesn't put RepoIds in CDR while
>> marshaling valuetype parameter.

> Indeed it doesn't in simple cases like this. It doesn't have to. The
> spec only requires it to send repoids if you are sending a value derived
> from the type specified in IDL, or it has an RMI: repository id.

> I've unpicked the GIOP message, and unless I've misinterpreted the spec,
> omniORB is doing the right thing:



-- 
Best regards,
 Андрей                            mailto:pouchin at gmail.com




More information about the omniORB-list mailing list