Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-17979

CXF producer can not process payloads worth more than 16KB if streaming is off and maxRetransmits > 1

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • fuse-7.11-GA
    • fuse-7.8-GA, fuse-7.9-GA
    • CXF
    • None
    • False
    • False
    • % %
    • +
    • Automated

    Description

      Starting from fuse 7.8, the CXF producer cannot process payloads more than 16 KB and gives different errors such as:

      2021-12-07 22:14:33,960 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (default-workqueue-4) Interceptor for {http://example.com}ExampleService#{http://example.com}ExamplePort has thrown exception, unwinding now: org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader: Undeclared namespace prefix "resp"
       at [row,col {unknown-source}]: [1,33]
      	at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:304)
      	at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:70)
      	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
      	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:808)
      	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1696)
      	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1192)
      	at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:412)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:345)
      	at java.lang.Thread.run(Thread.java:748)
      Caused by: com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "resp"
       at [row,col {unknown-source}]: [1,33]
      	at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:634)
      	at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:504)
      	at com.ctc.wstx.sr.InputElementStack.resolveAndValidateElement(InputElementStack.java:503)
      	at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:3048)
      	at com.ctc.wstx.sr.BasicStreamReader.handleRootElem(BasicStreamReader.java:2176)
      	at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2156)
      	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1179)
      	at com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1202)
      	at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:173)
      	... 10 more
      
      2021-12-07 22:14:33,961 ERROR [org.apache.camel.processor.DefaultErrorHandler] (default-workqueue-1) Failed delivery for (MessageId: ID-localhost-1638895360776-0-8 on ExchangeId: ID-localhost-1638895360776-0-7). Exhausted after delivery attempt: 1 caught: org.apache.cxf.interceptor.Fault
      
      Message History
      ---------------------------------------------------------------------------------------------------------------------------------------
      RouteId              ProcessorId          Processor                                                                        Elapsed (ms)
      [soapInputRoute    ] [consumer    ] [cxf://bean:cxfConsumerEndpoint?allowStreaming=true&dataFormat=PAYLOAD         ] [       222]
      [soapInputRoute    ] [process1          ] [Processor@0x1963ff06                                                          ] [         0]
      [soapInputRoute    ] [producer        ] [                                                                              ] [       220]
      
      Stacktrace
      ---------------------------------------------------------------------------------------------------------------------------------------: org.apache.cxf.interceptor.Fault
      	at org.apache.cxf.ext.logging.WireTapIn.handleMessage(WireTapIn.java:70)
      	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
      	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:808)
      	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1696)
      	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1192)
      	at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:412)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:345)
      	at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.NullPointerException
      	at org.apache.cxf.transport.http.asyncclient.SharedInputBuffer.read(SharedInputBuffer.java:263)
      	at org.apache.cxf.transport.http.asyncclient.AsyncHTTPConduit$AsyncWrappedOutputStream$6.read(AsyncHTTPConduit.java:698)
      	at org.apache.cxf.helpers.IOUtils.copyAtLeast(IOUtils.java:224)
      	at org.apache.cxf.ext.logging.WireTapIn.handleInputStream(WireTapIn.java:92)
      	at org.apache.cxf.ext.logging.WireTapIn.handleMessage(WireTapIn.java:62)
      	... 9 more
      

      If we exclude the cxf-rt-transports-http-hc library, it works fine. It also works fine if we increase the chunk length to fix the entire payload.

      It was working fine with Fuse 7.7 but it doesn't work with 7.8 or 7.9

      This can be managed on spring-boot by removing the cxf-rt-transports-http-hc library but it is a major issue on EAP where all the cxf related libraries are provided by the server.

      Attachments

        Activity

          People

            yfang@redhat.com Freeman(Yue) Fang
            rhn-support-adongre Avinash Dongre
            Federico Mariani Federico Mariani
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: