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
BreakHessianClient.tar.gz
Description: GNU Zip compressed data
BreakHessianWebApplication.tar.gz
Description: GNU Zip compressed data
_______________________________________________ hessian-interest mailing list [email protected] http://maillist.caucho.com/mailman/listinfo/hessian-interest
