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 2019/04/22 09:52:00 UTC
[jira] [Resolved] (CXF-7990) CXF goes in Infinite loop when service
endpoint throws SOAPFaultException
[ https://issues.apache.org/jira/browse/CXF-7990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jim Ma resolved CXF-7990.
-------------------------
Resolution: Fixed
> CXF goes in Infinite loop when service endpoint throws SOAPFaultException
> -------------------------------------------------------------------------
>
> Key: CXF-7990
> URL: https://issues.apache.org/jira/browse/CXF-7990
> Project: CXF
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.2.8, 3.3.1
> Reporter: Jim Ma
> Assignee: Jim Ma
> Priority: Major
> Fix For: 3.4.0, 3.2.9, 3.3.2
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> CXF will stuck in a infinite loop when add a detail element in SoapFault of SOAPFaultException:
> @WebService(name = "MyEchoService", targetNamespace = "urn:echo")
> @Logging
> public class MyEchoService {
> @WebMethod
> public String echoException(String input) throws SOAPFaultException {
> SOAPFaultException ex;
> try {
> ex = wrapToSoapFault(new Exception("hello"));
> } catch (Exception e) {
> // TODO Auto-generated catch block
> return e.toString();
> }
> throw ex;
> }
> private SOAPFaultException wrapToSoapFault(Exception ex) throws Exception {
> SOAPFactory fac = null;
> try {
> fac = SOAPFactory.newInstance();
> String message = ex.getMessage();
> SOAPFault sf = fac.createFault(message, new QName(SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE, "Client"));
> sf.setFaultString("ERROR");
> //Add detail gets cxf goes into infinite loop
> sf.addDetail().setAttribute("message", message);
> return new SOAPFaultException(sf);
> } catch (Exception e2) {
> throw e2;
> }
> }
> }
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)