Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0003030 [Hessian] major always 10-30-08 01:43 04-21-10 05:37
Reporter shawnchain View Status public  
Assigned To
Priority normal Resolution open Platform
Status new   OS
Projection none   OS Version
ETA none Fixed in Version Product Version 3.1.5
  Product Build
Summary 0003030: Server side exception could not be serialized to cilent side.
Description I have a service setup and exposed with Spring-Remoting/Hessian.
The server side API might throw some IOException or FileNotFoundException.

But at client side, I got the HessianProtocolException instead of the desired IOException.

The problem is gone after revert back to hessian 3.1.3.


Below is the error stack trace

com.caucho.hessian.io.HessianProtocolException: readObject: unexpected end of file
    at com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:2701)
    at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2010)
    at com.caucho.hessian.io.AbstractMapDeserializer.readObject(AbstractMapDeserializer.java:67)
    at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1756)
    at com.caucho.hessian.io.ArrayDeserializer.readList(ArrayDeserializer.java:95)
    at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1703)
    at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:387)
    at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:233)
    at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:157)
    at com.caucho.hessian.io.SerializerFactory.readObject(SerializerFactory.java:376)
    at com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2054)
    at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1980)
    at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1972)
    at com.caucho.hessian.io.Hessian2Input.readFault(Hessian2Input.java:1629)
    at com.caucho.hessian.io.Hessian2Input.prepareFault(Hessian2Input.java:428)
    at com.caucho.hessian.io.Hessian2Input.startReply(Hessian2Input.java:417)
    at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:218)
    at $Proxy0.createFile(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:219)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy1.createFile(Unknown Source)
    at com.alibaba.platform.aranda.client.HessianClientTest.testCreateFile(HessianClientTest.java:62)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at junit.framework.TestCase.runTest(TestCase.java:164)
    at junit.framework.TestCase.runBare(TestCase.java:130)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:120)
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
org.springframework.remoting.RemoteAccessException: Cannot access Hessian remote service at [http://localhost:8080/aranda/service/hessian]; [^] nested exception is com.caucho.hessian.io.HessianFieldException: java.lang.Throwable.stackTrace: readObject: unexpected end of file
    at org.springframework.remoting.caucho.HessianClientInterceptor.convertHessianAccessException(HessianClientInterceptor.java:254)
    at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:225)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy1.createFile(Unknown Source)
    at com.alibaba.platform.aranda.client.HessianClientTest.testCreateFile(HessianClientTest.java:62)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at junit.framework.TestCase.runTest(TestCase.java:164)
    at junit.framework.TestCase.runBare(TestCase.java:130)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:120)
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: com.caucho.hessian.io.HessianFieldException: java.lang.Throwable.stackTrace: readObject: unexpected end of file
    at com.caucho.hessian.io.JavaDeserializer.logDeserializeError(JavaDeserializer.java:590)
    at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:391)
    at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:233)
    at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:157)
    at com.caucho.hessian.io.SerializerFactory.readObject(SerializerFactory.java:376)
    at com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2054)
    at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1980)
    at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1972)
    at com.caucho.hessian.io.Hessian2Input.readFault(Hessian2Input.java:1629)
    at com.caucho.hessian.io.Hessian2Input.prepareFault(Hessian2Input.java:428)
    at com.caucho.hessian.io.Hessian2Input.startReply(Hessian2Input.java:417)
    at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:218)
    at $Proxy0.createFile(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:219)
    ... 20 more
Caused by: com.caucho.hessian.io.HessianProtocolException: readObject: unexpected end of file
    at com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:2701)
    at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2010)
    at com.caucho.hessian.io.AbstractMapDeserializer.readObject(AbstractMapDeserializer.java:67)
    at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1756)
    at com.caucho.hessian.io.ArrayDeserializer.readList(ArrayDeserializer.java:95)
    at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1703)
    at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:387)
    ... 36 more
Steps To Reproduce
Additional Information
Attached Files

- Relationships

- Notes
(0004538)
schatterjee
04-21-10 05:37
edited on: 04-21-10 05:38

I found a possible solution to this and have attached my proposed fix to bug no. 4011 ( http://bugs.caucho.com/view.php?id=4011 [^] )

 

- Issue History
Date Modified Username Field Change
10-30-08 01:43 shawnchain New Issue
04-21-10 05:37 schatterjee Note Added: 0004538
04-21-10 05:38 schatterjee Note Edited: 0004538


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
30 total queries executed.
26 unique queries executed.
Powered by Mantis Bugtracker