Mantis - Hessian
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
4011 | major | always | 04-21-10 05:33 | 06-06-12 01:06 | |
|
|||||
Reporter: | schatterjee | Platform: | |||
Assigned To: | OS: | ||||
Priority: | normal | OS Version: | |||
Status: | new | Product Version: | 3.1.6 | ||
Product Build: | Resolution: | open | |||
Projection: | none | ||||
ETA: | none | Fixed in Version: | |||
|
|||||
Summary: | 0004011: Server Exceptions Not getting passed to client (Found root cause and possible Fix) | ||||
Description: |
Problem Description ------------------- Server side exception could not be serialized to cilent side. Even if we throw SabaException from our Server, the client is receiving ?org.springframework.remoting.RemoteAccessException?. Root Cause ----------- 1. On investigation we found that there were a problem in serialization of exceptions in Hessian 2.0 Protocol. 2. Hessian was using buffers to serialize the exception and the buffer was flushed to output streams only if the buffer was full. 3. There was a problem during serialization of StackTraceElement 4. On completion of serialization the buffer was not flushed, due to which incomplete serialized exception was being sent to client. 5. As a result client gets exception ?readObject: unexpected end of file? while de-serializing the exception and it results in RemoteAccessException Solution ------- 1. We fixed the issue by adding a flush() statement at the end of writeFault() method in Hessian2Output.java Please advise if this fix is right or not and when can we expect a formal fix for this. I have attached both the original source code and modified source code for Hessian2Output.java |
||||
Steps To Reproduce: | |||||
Additional Information: |
There is already a bug reported for same error -> 0003030: Server side exception could not be serialized to cilent side. (http://bugs.caucho.com/view.php?id=3030) [^] |
||||
Relationships | |||||
Attached Files: |
Hessian2Output_Fixed.java [^] (34,813 bytes) 04-21-10 05:33 Hessian2Output.java [^] (34,822 bytes) 04-21-10 05:33 |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|