[
https://issues.apache.org/jira/browse/CXF-3934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anton Zagorulko updated CXF-3934:
---------------------------------
Description:
Web service method throws custom exception annotated by @WebFault, cxf endpoint
configuration has faultStackTraceEnabled=true and
exceptionMessageCauseEnabled=true properties. On client side we have response
with filled stacktrace element in fault/detail then through InFaultInterceptors
new instance of our custom exception is created and filled with stacktrace from
response. Our custom exception with stacktrace is intercepted in
JaxWsClientProxy when its stacktrace is filled again using fillInStackTrace()
as a result we have empty stacktrace.
line 120 ..try {
if (isAsync) {
result = invokeAsync(method, oi, params);
} else {
result = invokeSync(method, oi, params);
}
} catch (WebServiceException wex) {
throw wex.fillInStackTrace();
} catch (Exception ex) {
for (Class<?> excls : method.getExceptionTypes()) {
if (excls.isInstance(ex)) {
throw ex.fillInStackTrace();
}
}
}
...
I doubt if this behavior according to custom exceptions is correct because I
need this server stacktrace on client.
was:
Web service method throws custom exception annotated by @WebFault, cxf endpoint
configuration has faultStackTraceEnabled=true and
exceptionMessageCauseEnabled=true properties. On client side we have response
with filled stacktrace element in fault/detail then through InFaultInterceptors
new instance of our custom exception is created and filled with stacktrace from
response. Our custom exception with stacktrace is intercepted in
JaxWsClientProxy when its stacktrace is filled again using fillInStackTrace()
as a result we have empty stacktrace.
line 120 ..try {
if (isAsync) {
result = invokeAsync(method, oi, params);
} else {
result = invokeSync(method, oi, params);
}
} catch (WebServiceException wex) {
throw wex.fillInStackTrace();
} catch (Exception ex) {
for (Class<?> excls : method.getExceptionTypes()) {
if (excls.isInstance(ex)) {
throw ex.fillInStackTrace();
}
}
}
...
I doubt if this behavior according to custom exceptions is correct.
> JaxWsClientProxy clears stacktrace of custom exception
> ------------------------------------------------------
>
> Key: CXF-3934
> URL: https://issues.apache.org/jira/browse/CXF-3934
> Project: CXF
> Issue Type: Bug
> Components: JAX-WS Runtime
> Affects Versions: 2.3.1
> Environment: AS Jboss 5.1, jbossws-cxf-3.4.1, cxf-2.3.1
> Reporter: Anton Zagorulko
>
> Web service method throws custom exception annotated by @WebFault, cxf
> endpoint configuration has faultStackTraceEnabled=true and
> exceptionMessageCauseEnabled=true properties. On client side we have response
> with filled stacktrace element in fault/detail then through
> InFaultInterceptors new instance of our custom exception is created and
> filled with stacktrace from response. Our custom exception with stacktrace is
> intercepted in JaxWsClientProxy when its stacktrace is filled again using
> fillInStackTrace() as a result we have empty stacktrace.
> line 120 ..try {
> if (isAsync) {
> result = invokeAsync(method, oi, params);
> } else {
> result = invokeSync(method, oi, params);
> }
> } catch (WebServiceException wex) {
> throw wex.fillInStackTrace();
> } catch (Exception ex) {
> for (Class<?> excls : method.getExceptionTypes()) {
> if (excls.isInstance(ex)) {
> throw ex.fillInStackTrace();
> }
> }
> }
> ...
> I doubt if this behavior according to custom exceptions is correct because I
> need this server stacktrace on client.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira