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

Reply via email to