You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Jim Ma (Jira)" <ji...@apache.org> on 2021/09/23 08:16:00 UTC
[jira] [Resolved] (CXF-8596) WebFaultOutInterceptor goes into
infinite loop when it tries to write SoapFaultException with detail
[ https://issues.apache.org/jira/browse/CXF-8596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jim Ma resolved CXF-8596.
-------------------------
Resolution: Fixed
> WebFaultOutInterceptor goes into infinite loop when it tries to write SoapFaultException with detail
> ----------------------------------------------------------------------------------------------------
>
> Key: CXF-8596
> URL: https://issues.apache.org/jira/browse/CXF-8596
> Project: CXF
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.4.4, 3.3.11
> Reporter: Jim Ma
> Assignee: Jim Ma
> Priority: Major
> Fix For: 3.3.12, 3.4.5, 3.5.0
>
>
> This happens when :
> 1. jaxws service endpoint A calls another endpoint service B
> 2. endpoint service B throws SOAPFaultException, and this SOAPFaultException wraps a SOAPFault which is constructed with an Exception class like :
> {code:java}
> public String proxyException(String input) throws SOAPFaultException {
> try {
> Integer.parseInt(input);
> } catch (Exception e) {
> throw new SOAPFaultException(
> createSOAPFault(new EchoException("exception from testException()")));
> }
> return "DONE";
> }
> private SOAPFault createSOAPFault(Throwable ex) {
> try {
> SOAPFault soapFault = SOAPFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL).createFault();
> soapFault.setFaultCode(new QName(SOAPConstants.URI_NS_SOAP_ENVELOPE, "Server", "a"));
> soapFault.setFaultString("SOAPFaultString");
> soapFault.setFaultActor("ServerSide");
> soapFault.addDetail();
> return soapFault;
> } catch (SOAPException e) {
> throw new RuntimeException(e);
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)