title: mule async flow ws call cause read timeout
body: <p>I have a question to ask.
  My case is this: I have a quartz:inbound-endpoint which triggers my custom-transformer ContractStarter. This transformer has inside a web-service call webService.doStuf(). Although it is declared in async scope, when it takes too long for ws to respond I sill get the SocketTimeoutException: Read timed out.
  What I want is - to make this call work as async scope, without waiting for response and causing no time-out exceptions, because response is not important.</p>
  
  <p>my xml looks like</p>
  
  <pre><code>http:endpoint  name="httpIn"  address="${service.proxy.soap}" responseTimeout="30000" exchange-pattern="one-way" /&gt;
  http:endpoint  name="httpOut"  address="${service.soap}" responseTimeout="30000" exchange-pattern="one-way" /&gt;
  
  &lt;pattern:web-service-proxy 
      name="muleServiceProxy" 
      inboundEndpoint-ref="httpIn" 
      outboundEndpoint-ref="httpOut" /&gt;
  
  &lt;spring:bean name="contractStarter" class="com.mule.scheduler.ContractStarter"&gt;
      &lt;spring:property name="webService" ref="realWebService"&gt;&lt;/spring:property&gt;
  &lt;/spring:bean&gt;
  
  &lt;queued-asynchronous-processing-strategy name="allowFiveThread" maxThreads="30" /&gt;
  
  &lt;flow name="contractQuartzScheduler"&gt;
      &lt;quartz:inbound-endpoint startDelay="3000" jobName="contractBecome" cronExpression="0 0/2 7-23 * * ?"&gt;
          &lt;quartz:event-generator-job/&gt;
      &lt;/quartz:inbound-endpoint&gt;
      &lt;async processingStrategy="allowFiveThread"&gt;
      &lt;component&gt;
          &lt;spring-object bean="contractStarter"/&gt;
      &lt;/component&gt;
      &lt;/async&gt;
  &lt;/flow&gt;
  </code></pre>
  
  <p>the service "webservice" is defined as:</p>
  
  <pre><code> jaxws:client id="realWebService" serviceClass="com.wsdl._2011.WebService" address="${httpIn}"
  </code></pre>
  
  <p>and my custom transformer contractStarter is:</p>
  
  <pre><code>public class ContractStarter implements Callable {
  
  private static Logger log = Logger.getLogger(ContractStarter.class);
  
  private WebService webService;
  
  
  @Override
  public Object onCall(MuleEventContext arg0) throws Exception {
      try {
          log.info("Starting ContractStarter");
  
          Header requestHeader = JAXBStubsUtil.createHeader(new Date().toString(), "starContract", "MULE");
          Holder&lt;Header&gt; responseHeader = new Holder&lt;Header&gt;();
          MyRequestMessage request = new MyRequestMessage();
          Holder&lt;MyResponseMessage&gt; response = new Holder&lt;MyResponseMessage&gt;();
          webService.doStuff(requestHeader, request, responseHeader, response);
          return response;
      } catch (Exception e) {
          log.error(e,e);
          throw e;
      }
  }
  </code></pre>
  
  <p>Exception stack is:</p>
  
  <p>Exception stack is:</p>
  
  <pre><code>1. Read timed out (java.net.SocketTimeoutException)
    java.net.SocketInputStream:-2 (null)
  2. Failed to route event via endpoint: DefaultOutboundEndpoint{endpointUri=http://localhost:8080/WebService, connector=HttpConnector
  {
    name=HttpConnector1
    lifecycle=start
    this=5025536c
    numberOfConcurrentTransactedReceivers=4
    createMultipleTransactedReceivers=true
    connected=true
    supportedProtocols=[http]
    serviceOverrides=&lt;none&gt;
  }
  --------------------------------------------------------------------------------
  Root Exception stack trace:
  java.net.SocketTimeoutException: Read timed out
      at java.net.SocketInputStream.socketRead0(Native Method)
      at java.net.SocketInputStream.read(SocketInputStream.java:129)
      at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
      + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
  ********************************************************************************
  
  ERROR 2014-06-13 09:36:28,514 [[mule-axioma-services].ContractStarterScheduler.async1.01] com.mule.scheduler.ContractStarter: javax.xml.ws.soap.SOAPFaultException: Error reading XMLStreamReader.
  javax.xml.ws.soap.SOAPFaultException: Error reading XMLStreamReader.
      at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146)
      at $Proxy85.doBatch(Unknown Source)
      at com.mule.scheduler.ContractStarter.onCall(ContractStarter.java:52)
      at org.mule.model.resolvers.CallableEntryPointResolver.invoke(CallableEntryPointResolver.java:50)
      at org.mule.model.resolvers.DefaultEntryPointResolverSet.invoke(DefaultEntryPointResolverSet.java:39)
      at org.mule.component.DefaultComponentLifecycleAdapter.invoke(DefaultComponentLifecycleAdapter.java:350)
      at org.mule.component.AbstractJavaComponent.invokeComponentInstance(AbstractJavaComponent.java:86)
      at org.mule.component.AbstractJavaComponent.doInvoke(AbstractJavaComponent.java:77)
      at org.mule.component.AbstractComponent.invokeInternal(AbstractComponent.java:126)
      at org.mule.component.AbstractComponent.access$000(AbstractComponent.java:61)
      at org.mule.component.AbstractComponent$1$1.process(AbstractComponent.java:242)
      at org.mule.processor.chain.DefaultMessageProcessorChain.doProcess(DefaultMessageProcessorChain.java:99)
      at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:64)
      at org.mule.processor.chain.InterceptingChainLifecycleWrapper.doProcess(InterceptingChainLifecycleWrapper.java:56)
      at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:64)
      at org.mule.processor.chain.InterceptingChainLifecycleWrapper.process(InterceptingChainLifecycleWrapper.java:87)
      at org.mule.component.AbstractComponent.process(AbstractComponent.java:160)
      at org.mule.processor.chain.DefaultMessageProcessorChain.doProcess(DefaultMessageProcessorChain.java:99)
      at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:64)
      at org.mule.processor.chain.InterceptingChainLifecycleWrapper.doProcess(InterceptingChainLifecycleWrapper.java:56)
      at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:64)
      at org.mule.processor.chain.InterceptingChainLifecycleWrapper.process(InterceptingChainLifecycleWrapper.java:87)
      at org.mule.processor.AbstractInterceptingMessageProcessorBase.processNext(AbstractInterceptingMessageProcessorBase.java:105)
      at org.mule.interceptor.AbstractEnvelopeInterceptor.process(AbstractEnvelopeInterceptor.java:55)
      at org.mule.processor.AsyncInterceptingMessageProcessor.processNextTimed(AsyncInterceptingMessageProcessor.java:111)
      at org.mule.processor.AsyncInterceptingMessageProcessor$AsyncMessageProcessorWorker.doRun(AsyncInterceptingMessageProcessor.java:158)
      at org.mule.work.AbstractMuleEventWork.run(AbstractMuleEventWork.java:43)
      at org.mule.work.WorkerContext.run(WorkerContext.java:310)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:662)
  Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character 'F' (code 70) in prolog; expected '&lt;'
   at [row,col {unknown-source}]: [1,1]
      at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:644)
      at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2003)
      at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1100)
      at com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1123)
      at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:122)
      at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:60)
      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
      at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:755)
      at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2330)
      at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2192)
      at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2036)
      at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
      at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:696)
      at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
      at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
      at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
      ... 30 more
  </code></pre>