Mantis - Hessian
Viewing Issue Advanced Details
5104 major always 06-06-12 01:01 06-06-12 01:01
ccampo  
 
normal  
new 3.2.0  
open  
none    
none  
0005104: AbstractDeserializer: UnsupportedOperationException
For a remoteservice call we see on the server an UnsupportedOperationException. It happens when deserializing the parameter for the call (before the method invocation). Not sure what object causes this.

This is the stacktrace:
com.caucho.hessian.io.CollectionDeserializer@552b552b
java.lang.UnsupportedOperationException:
com.caucho.hessian.io.CollectionDeserializer@552b552b
 at
com.caucho.hessian.io.AbstractDeserializer.readObject(AbstractDeserializer.java:103)
 at
com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2048)
 at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1689)
 at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1676)
 at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:176)
 at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:109)


1) I noticed that in AbstractDeserializer the method "readObject(AbstractHessianInput in)" throws a protocol error giving details about the object in errro.

The method "readObject(AbstractHessianInput in, String []fieldNames)" just throws an UnsupportedOperationException. (This way still in 4.0.7).

That is at least unhelpful, since the information which object caused the problem is missing in the log file.

2) While the exception is shown in our error logs on the server, it is not shown as an exception on the client. The HessianSkeleton class calls "out.writeFault" for errors in the remote service. Exception while deserializing the input are not reported back to the client with "out.writeFault". The client just gets no exception and continues without noticing that the remote service has failed.

There are no notes attached to this issue.