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