Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-8596

WebFaultOutInterceptor goes into infinite loop when it tries to write SoapFaultException with detail

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.4.4, 3.3.11
    • 3.5.0, 3.3.12, 3.4.5
    • Core
    • None
    • Unknown

    Description

      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 :

          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);
              }
          }
      

      Attachments

        Activity

          People

            ema Jim Ma
            ema Jim Ma
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: