Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Critical Critical
  • Resolution: Won't Fix or Usage Issue
  • Affects Version/s: 3.1.2
  • Fix Version/s: None
  • Component/s: Modules: CXF
  • Labels:
  • Environment:

    Mac OS X (uname -a) - Darwin Kernel Version 10.7.4: Mon Apr 18 21:24:17 PDT 2011; root:xnu-1504.14.12~3/RELEASE_X86_64 x86_64

  • User impact:
    Medium
  • Log Output:
    Hide
    ********************************************************************************
    Message : null (java.lang.reflect.InvocationTargetException)
    Type : org.mule.api.DefaultMuleException
    Code : MULE_ERROR-10999
    JavaDoc : http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/DefaultMuleException.html
    ********************************************************************************
    Exception stack is:
    1. Broken pipe (java.net.SocketException)
      java.net.SocketOutputStream:-2 (null)
    2. Broken pipe (com.ctc.wstx.exc.WstxIOException)
      com.ctc.wstx.sw.BaseStreamWriter:1431 (null)
    3. Error writing to XMLStreamWriter. (javax.xml.ws.soap.SOAPFaultException)
      org.apache.cxf.jaxws.JaxWsClientProxy:146 (http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/xml/ws/soap/SOAPFaultException.html)
    4. null (java.lang.reflect.InvocationTargetException) (org.mule.api.DefaultMuleException)
      org.mule.module.cxf.CxfOutboundMessageProcessor:141 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/DefaultMuleException.html)
    ********************************************************************************
    Root Exception stack trace:
    java.net.SocketException: Broken pipe
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
    ...
    Show
    ******************************************************************************** Message : null (java.lang.reflect.InvocationTargetException) Type : org.mule.api.DefaultMuleException Code : MULE_ERROR-10999 JavaDoc : http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/DefaultMuleException.html ******************************************************************************** Exception stack is: 1. Broken pipe (java.net.SocketException)   java.net.SocketOutputStream:-2 (null) 2. Broken pipe (com.ctc.wstx.exc.WstxIOException)   com.ctc.wstx.sw.BaseStreamWriter:1431 (null) 3. Error writing to XMLStreamWriter. (javax.xml.ws.soap.SOAPFaultException)   org.apache.cxf.jaxws.JaxWsClientProxy:146 (http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/xml/ws/soap/SOAPFaultException.html) 4. null (java.lang.reflect.InvocationTargetException) (org.mule.api.DefaultMuleException)   org.mule.module.cxf.CxfOutboundMessageProcessor:141 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/DefaultMuleException.html) ******************************************************************************** Root Exception stack trace: java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) ...
  • Similar Issues:
    None

Description

I'm currently investigating the following issue for a prospect who we are supporting during their POC,

http://forums.mulesoft.org/message.jspa?messageID=16831#16831

Basically I'm caching the payload of a received message into the SESSION header before making a call to CXF (jaxws-client), and I can see that this works for small messages BUT throws a socket write exception for large ones.

Exception received is as follows (see Log Output below).

I've created a test case for this scenario which is available here:

git://github.com/daveEason/mule-cxf-exception-example.git

I have been using SoapUI to create a Mock web service with the included WSDL to test this functionality.

Regards,

Dave

Activity

Hide
David Eason added a comment -

Just to add some more context to this issue. I am actually finding that the first time I invoke this server after starting "SoapUI" I actually get the following message "Response code: 413 FULL head" (see details below):

====================
INFO 2011-07-12 17:14:25,793 [main] org.mule.transport.http.HttpClientMessageDispatcher: Received a redirect, but followRedirects=false. Response code: 413 FULL head
DEBUG 2011-07-12 17:14:25,794 [main] org.mule.transport.http.HttpClientMessageDispatcher: Http response is: null
DEBUG 2011-07-12 17:14:25,794 [main] org.mule.transport.http.HttpConnector: Returning dispatcher for endpoint: http://localhost:8088/mockStockQuoteSoap = HttpClientMessageDispatcher{this=23030dda, endpoint=http://localhost:8088/mockStockQuoteSoap, disposed=false}
====================

Subsequent to that I actually start getting the "java.net.SocketException: Broken pipe" exception with subsequent invocations and the "413 FULL head" messages goes away.

Show
David Eason added a comment - Just to add some more context to this issue. I am actually finding that the first time I invoke this server after starting "SoapUI" I actually get the following message "Response code: 413 FULL head" (see details below): ==================== INFO 2011-07-12 17:14:25,793 [main] org.mule.transport.http.HttpClientMessageDispatcher: Received a redirect, but followRedirects=false. Response code: 413 FULL head DEBUG 2011-07-12 17:14:25,794 [main] org.mule.transport.http.HttpClientMessageDispatcher: Http response is: null DEBUG 2011-07-12 17:14:25,794 [main] org.mule.transport.http.HttpConnector: Returning dispatcher for endpoint: http://localhost:8088/mockStockQuoteSoap = HttpClientMessageDispatcher{this=23030dda, endpoint=http://localhost:8088/mockStockQuoteSoap, disposed=false} ==================== Subsequent to that I actually start getting the "java.net.SocketException: Broken pipe" exception with subsequent invocations and the "413 FULL head" messages goes away.
Hide
Pablo La Greca added a comment -

The thing is that when an HTTP header is to big, server side do not receive the message, so it close the connection causing broken pipe issue
To fix this, the server has to change it's policy about maximum http header size that way you should be able to make it work

Show
Pablo La Greca added a comment - The thing is that when an HTTP header is to big, server side do not receive the message, so it close the connection causing broken pipe issue To fix this, the server has to change it's policy about maximum http header size that way you should be able to make it work

People

Vote (4)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: