[
http://issues.apache.org/jira/browse/AXIS-1642?page=comments#action_12314127 ]
Chad Wilson commented on AXIS-1642:
-----------------------------------
Oh - and on a related note - I notice that regardless of whether you are using
LogHandler or any kind of custom onFault() handling if the exception thrown has
a nested exception, Axis will ignore axis.development.system and serialize the
nested exception (root cause) stack trace - although correctly ignoring the
main exception.
Is this the expected behaviour? This occurs whenever you throw a custom
exception which sets super.rootCause:
public class MySpecialFault extends Exception {
private MySpecialFault (String customName, String customDetail, int
customCode, Throwable rootCause) {
super(customName, rootCause);
this.name = customName;
this.detail = customDetail;
this.code = customCode;
}
...
}
> axis.development.system doesn't supress stack traces
> ----------------------------------------------------
>
> Key: AXIS-1642
> URL: http://issues.apache.org/jira/browse/AXIS-1642
> Project: Apache Axis
> Type: Bug
> Components: Serialization/Deserialization
> Versions: 1.2 Beta
> Reporter: Nelson Minar
>
> I had this problem in 1.2beta1, and another user just reported it on
> axis-user. As a convenience I'm copying his mail into a Jira bug report.
> http://marc.theaimsgroup.com/?l=axis-user&m=109952829914606&w=2
> I ran into a problem with not being able to stop stack traces from being
> sent to the client even though "axis.development.system" was set to
> false in the wsdd. The beauty of open source is that I've been able to
> trace through the code and figure out what the problem was. The service
> that I'm developing has an onFault handler that had the following line
> of code:
> SOAPFault fault =
> (SOAPFault)ctx.getResponseMessage().getSOAPEnvelope().getBody().getFault();
> Before this call, the response message contained the fault that my
> service had thrown but after the call it contained a copy of the fault.
> Unfortunately, the code that removes the stack trace from the fault
> works on the original, not the copy, so the stack trace is still in the
> response when the response gets sent.
> By changing the above to:
> Object fault_obj =
> ((SOAPPart)ctx.getResponseMessage().getSOAPPart()).getCurrentMessage();
> which does not change the response message. I now simply check whether
> fault_obj is an AxisFault or a SOAPFault and act accordingly.
> Hope this helps others who have run into this problem.
> Dan.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira