SOAPFaultSerializer classes lose XFireFault 'cause' stack elements when 
serializing
-----------------------------------------------------------------------------------

                 Key: XFIRE-801
                 URL: http://jira.codehaus.org/browse/XFIRE-801
             Project: XFire
          Issue Type: Bug
          Components: Core
    Affects Versions: 1.2.1
         Environment: Op Sys: Windows XP / Sun Solaris
JDK: j2sdk1.4.2_05
App Servers: TomCat 5.x / Sun Java System App Server 8.2
Additional frameworks: Spring 2 + Hibernate 3
            Reporter: Angel Rojo
         Assigned To: Dan Diephouse


Hello,

When SOAP11FaultSerializer serializes the XFireFault corresponding with an 
exception, all information found inside 'cause' elements is not serialized. 
Only 'message' and 'detailMessage' information is serialized. So cause elements 
information is omitted causing a loss of exception information on the 
WebService client side.

Is there any way to serialize this 'cause' stack information from the 
webservice to the client side?

For example, we are working on a Hibernate+Spring+Xfire project.

When an exception occurs, for exemple when inserting a wrong value to the 
database (too large value), the real information of the error can be found 
nested inside the 'cause' element of the exception.
The information found inside 'message' and inside 'detailMessage' elements is 
not the real information of the error.

Continuing with  the above example, we've got a XFireFault with the following 
information:

detailMessage: Could not execute JDBC batch update; nested exception is 
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC 
batch update
message: Could not execute JDBC batch update; nested exception is 
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC 
batch update
cause: org.springframework.dao.DataIntegrityViolationException: Could not 
execute JDBC batch update; nested exception is 
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC 
batch update

And inside this cause element, we've got two more cause elements:
cause(Throwable): org.springframework.dao.DataIntegrityViolationException: 
Could not execute JDBC batch update; nested exception is 
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC 
batch update
cause (NestedRuntimeException): 
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC 
batch update

And inside this last cause element, we've got two more causes, one of them with 
the real information of the error:
cause (NestedRuntimeException): java.sql.BatchUpdateException: ORA-01401: 
inserted value too large for column
cause (Throwable): org.hibernate.exception.ConstraintViolationException: Could 
not execute JDBC batch update

When SOAP11FaultSerializer serializes the XFireFault corresponding with the 
exception, all information found inside 'cause' elements is not serialized and 
thus lost.

Only 'message' and 'detailMessage' information is serialized. So useful cause 
elements information is omitted.

Thank you!

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to