Hi Folks.

Hope this is the correct place to post bug reports.

I think I've found a bug in the Java serialization code.

Environment:
        Hessian 3.1.2
        Ubuntu Linux 7.04
        Java 1.6.0_02 (sun)

When a class which contains 2 instances of BigDecimal.TEN (for example) is sent to my service, the service throws an exception.



I've narrowed the problem down to a simple test, where the shared class looks like

class SharedData implements Serializable {
        BigDecimal credit;
        BigDecimal debit;
}

so long as credit and debit are different all is fine.
But set them both to something like BigDecimal.TEN and I get problems.

Attached are 2 projects, the test server and test client.


Cheers
Peter Henderson.




The all important exception. (This is server side)

StandardWrapperValve[BreakHessaianService]: PWC1406: Servlet.service() for servlet BreakHessaianService threw exception com.caucho.hessian.io.IOExceptionWrapper: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 at com.caucho.hessian.io.JavaDeserializer.readMap(JavaDeserializer.java:210) at com.caucho.hessian.io.JavaDeserializer.readMap(JavaDeserializer.java:136) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1544) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:149) at com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:363) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:258) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:189) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:81)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:193) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:255) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:618) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:549) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:790) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:326) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:248) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:199) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:348) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:93)
Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
        at java.util.ArrayList.RangeCheck(ArrayList.java:547)
        at java.util.ArrayList.get(ArrayList.java:322)
at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1605) at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:375) at com.caucho.hessian.io.JavaDeserializer.readMap(JavaDeserializer.java:194)
        ... 31 more




Attachment: BreakHessianClient.tar.gz
Description: GNU Zip compressed data

Attachment: BreakHessianWebApplication.tar.gz
Description: GNU Zip compressed data

_______________________________________________
hessian-interest mailing list
[email protected]
http://maillist.caucho.com/mailman/listinfo/hessian-interest

Reply via email to