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)