Hello there,
I’m using SDO’s over an RMI binding in Tuscany 1.6.1.
I'm running into a problem when the SDO has a String attribute
(defined as <xsd:string>) and the string contains valid UTF-8
characters that are illegal in XML (e.g. ‘\u001f’). The SDO gets
serialized by JAXB without escaping/encoding these bytes, effectively
producing illegal XML.
When I later try to unmarshal these objects, the unmarshaller crashes.
Here’s the relevant part of the stack trace:
Caused by: java.rmi.UnmarshalException: error unmarshalling return; nested
exception is:
java.io.EOFException
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:173)
at
java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)
... 41 more
Caused by: java.io.EOFException
at
java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)
at
java.io.ObjectInputStream$BlockDataInputStream.readInt(ObjectInputStream.java:2774)
at java.io.ObjectInputStream.readInt(ObjectInputStream.java:950)
at
org.apache.tuscany.sdo.spi.HelperProviderBase$ResolvableImpl.readDataObject(HelperProviderBase.java:211)
at
org.apache.tuscany.sdo.spi.HelperProviderBase$ResolvableImpl.readExternal(HelperProviderBase.java:161)
at
commonj.sdo.impl.ExternalizableDelegator.readExternal(ExternalizableDelegator.java:83)
I guess this is purely a JAXB issue? But could it not be worked around in
Tuscany?
-- Sebastian