incubator-yoko-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Darren Middleman" <dmiddle...@gmail.com>
Subject Re: IdlToWsdl corba binding type tests
Date Mon, 12 Feb 2007 14:00:08 GMT
Hello Matteo,

I think I've tracked down the cause of the problem.

The reason this was happening was due to the way the conversion from the
Byte object to the Character object was being made.  Using a negative byte
value to create a new character resulted in the value of the character
wrapping
within its range and causing a large character value.  (i.e. byte value of
-128
resulted in a character with value 65408).  When this value was passed to
the
ORB, the stream checked to ensure that the value was not greater than 255
(the
OMG range for a character is 0 to 255) and since it was, threw a
DATA_CONVERSION exception.

I'm going to add something to the PrimitiveHandler so that the correct
conversion
from a byte value to a character value is performed.  This should solve the
issues
you are seeing with the failing character test.

Cheers,
Darren


On 2/12/07, Vescovi, Matteo <matteo.vescovi@iona.com> wrote:
>
> Hi,
> I am trying to fix some of the (currently disabled) idltowsdl corba
> binding type tests.
>
> The tests involve invoking an operation with the following corba binding:
>     <wsdl:operation name="testChar">
>       <corba:operation name="testChar">
>         <corba:param mode="in" name="inChar" idltype="corba:char" />
>         <corba:param mode="inout" name="inoutChar" idltype="corba:char" />
>         <corba:param mode="out" name="outChar" idltype="corba:char" />
>         <corba:return name="return" idltype="corba:char" />
>       </corba:operation>
>
> In the client process, during the marshalling of the request, a
> CORBA.DATA_CONVERSION exception is thrown when we attempt to write out
> the character.
>
> I think the problem lies in the fact that the type mapping for a char is
> corba:char <-> xs:byte <-> java byte (or Byte).
> Class org.apache.yoko.bindings.corba.CorbaObjectWriter casts the object
> to be marshalled to a Character in its writeChar method.
> Should this be cast to a Byte instead? Or should the Byte be
> appropriately converted to a Character before being written out?
>
> I am not sure what the right approach to fix it is.
> Perhaps someone with a better understanding of the runtime can help me
> here?
>
> Any help or pointers to relevant resources will be appreciated.
>
> To reproduce this failure, enable the test by commenting out the
> testChar method in
>
> bindings/src/test/java/org/apache/yoko/bindings/corba/IdlToWsdlTypeTest.java
>
>
> Cheers,
> - Matteo
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message