[omniORB] WString Marshalling Error?

Ken Feuerman kfeuerma@adobe.com
Tue, 28 Aug 2001 11:00:23 -0700


Steve,

Nice guess, but I'm afraid you're off.  It is ORBacus version 4.0.1 that 
returns the marshalling exception.

You're right of course, the spec has changed as of GIOP 1.2 to NOT include 
the terminating NUL for wstings.  I believe OB4.0.1 doesn't quite have it 
right here (the source code for it appears to accept GIOP 1.2, but 
explicitly checks for a NUL termination and throws if not there).  But to 
be fair, 4.0.1 isn't the latest version so I don't know if it's since been 
fixed.

Thanks for the reply!

--Ken Feuerman.
Adobe Systems, Inc.


At 01:09 PM 8/28/2001 +1000, Stephen Crawley wrote:
> > I'm using omniORB4, snapshot of 15-Aug-2001.  In the implementation of the
> > function TCS_W_UTF_16::marshalWString() (in the source file cs-utf-16.cc),
> > there's a comment:
> >
> >    // Just to be different, wstring is marshalled without a terminating
> >    // null. Length is in octets.
> >
> > Is this right?
>
>Yes.  It is really right.
>
> > When trying to make a call to a method with a wstring
> > parameter, and when the servant is implemented using a different ORB, I'm
> > getting an IDL:omg.org/CORBA/MARSHAL:1.0 exception back from the
> > servant.  Everything I've been able to find so far (CORBA 2.3 spec, 
> Henning
> > and Vinoski) seems to state that the terminating null SHOULD be included
> > with the wstring.
>
>I believe that this changed in GIOP / CDR version 1.2.
>
>Let me guess ... the other ORB is Visibroker 4.x, right?  The
>marshalling of WString in VB 4.0 is not GIOP 1.2 conformant.  In VB 4.1
>and 4.5, the marshalling of WString is backwards compatible with VB 4.0
>by default. To get standards compliance (in VBJ 4.{1,5} at least) you
>have to set the "vbroker.orb.enableVB4backcompat" property to false.
>
>-- Steve