title: Migrating from mule 3.6.2 to 3.8.2
body: <p>I am working on upgrading an existing application from 3.6.2 to 3.8.2. The REST calls are working after the configuration changes. But getting NullPointerException in StaxDataBinding.java when running the flow for SOAP call. The Service is returning 200 but at the end the flow fails with status code 500.</p>
  
  <p>Old config file for Mule 3.6.2:</p>
  
  <pre><code>&lt;flow name="testws-srr"&gt;
         &lt;http:inbound-endpoint host="${app.host}" port="${app.port}" path="testWs" exchange-pattern="request-response" doc:name="HTTP"&gt;
            &lt;cxf:proxy-service/&gt;
         &lt;/http:inbound-endpoint&gt;
         &lt;msr:resolve-endpoint serviceName="TestService" basicAuthSupport="true"/&gt;
         &lt;http:outbound-endpoint ref="msr-resolvedEndpoint" exchange-pattern="request-response" responseTimeout="30000" doc:name="HTTP"&gt;
            &lt;cxf:proxy-client/&gt;
         &lt;/http:outbound-endpoint&gt;
         &lt;custom-exception-strategy class="com.mule.errorhandling.exception.CustomExceptionHandlingStrategy" doc:name="Custom Exception Strategy"&gt;
           &lt;spring:property name="code" value="TA102" /&gt;
           &lt;spring:property name="message" value="${error.TA102}"/&gt;
        &lt;/custom-exception-strategy&gt;
      &lt;/flow&gt;
  </code></pre>
  
  <p>flows-config.xml for 3.8.2:</p>
  
  <pre><code>&lt;flow name="testws-srr"&gt;
        &lt;http:listener config-ref="msr-listener-httpConnector" path="testWs" doc:name="HTTP"/&gt;
        &lt;cxf:proxy-service doc:name="CXF" /&gt;      
        &lt;msr:resolve-endpoint serviceName="resultsService" basicAuthSupport="true" /&gt;      
        &lt;cxf:proxy-client doc:name="CXF"/&gt;      
        &lt;sfhttp:request config-ref="msr-request-httpConnector" path="" method="POST" responseTimeout="15000" doc:name="HTTP"&gt;
           &lt;http:success-status-code-validator values="200,500" /&gt;
        &lt;/http:request&gt;
        &lt;transformer ref="statusTransformer" /&gt;
        &lt;custom-exception-strategy class="com.mule.errorhandling.exception.CustomExceptionHandlingStrategy" doc:name="Custom Exception Strategy"&gt;
           &lt;spring:property name="code" value="TA102" /&gt;
           &lt;spring:property name="message" value="${error.TA102}" /&gt;
        &lt;/custom-exception-strategy&gt;
     &lt;/flow&gt; 
  </code></pre>
  
  <p>I am getting this error when adding cxf:proxy-service tag -</p>
  
  <pre><code>2017-09-25 10:39:42,844 logLevel="WARN" [[-auto-esb].msr-listener-httpConnector.worker.01] org.apache.cxf.phase.PhaseInterceptorChain: Interceptor for {http://support.cxf.module.mule.org/}ProxyService has thrown exception, unwinding now
  java.lang.NullPointerException
     at org.apache.cxf.databinding.stax.StaxDataBinding$XMLStreamDataWriter.write(StaxDataBinding.java:147) ~[cxf-rt-core-2.7.18.jar:2.7.18]
     at org.apache.cxf.databinding.stax.StaxDataBinding$XMLStreamDataWriter.write(StaxDataBinding.java:135) ~[cxf-rt-core-2.7.18.jar:2.7.18]
     at org.apache.cxf.databinding.stax.StaxDataBinding$XMLStreamDataWriter.write(StaxDataBinding.java:131) ~[cxf-rt-core-2.7.18.jar:2.7.18]
     at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:141) ~[cxf-api-2.7.18.jar:2.7.18]
     at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) ~[cxf-api-2.7.18.jar:2.7.18]
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) ~[cxf-api-2.7.18.jar:2.7.18]
     at org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:242) ~[cxf-api-2.7.18.jar:2.7.18]
     at org.mule.module.cxf.CxfInboundMessageProcessor$2.write(CxfInboundMessageProcessor.java:541) ~[mule-module-cxf-3.8.2.jar:3.8.2]
     at org.mule.tranformer.simple.ObjectToByteArray.doTranform(ObjectToByteArray.java:63) ~[mule-core-3.8.2.jar:3.8.2]
     at org.mule.tranformer.AbstractTranformer.tranform(AbstractTranformer.java:415) ~[mule-core-3.8.2.jar:3.8.2]
     at org.mule.DefaultMuleMessage.getPayload(DefaultMuleMessage.java:406) ~[mule-core-3.8.2.jar:3.8.2]
     at org.mule.DefaultMuleMessage.getPayload(DefaultMuleMessage.java:354) ~[mule-core-3.8.2.jar:3.8.2]
     at org.mule.DefaultMuleMessage.getPayloadAsBytes(DefaultMuleMessage.java:741) ~[mule-core-3.8.2.jar:3.8.2]
     at org.mule.module.http.internal.listener.HttpResponseBuilder.build(HttpResponseBuilder.java:208) ~[mule-module-http-3.8.2.jar:3.8.2]
     at org.mule.module.http.internal.listener.HttpMessageProcessorTemplate.doBuildResponse(HttpMessageProcessorTemplate.java:122) ~[mule-module-http-3.8.2.jar:3.8.2]
     at org.mule.module.http.internal.listener.HttpMessageProcessorTemplate.buildResponse(HttpMessageProcessorTemplate.java:112) ~[mule-module-http-3.8.2.jar:3.8.2]
     at org.mule.module.http.internal.listener.HttpMessageProcessorTemplate.sendResponseToClient(HttpMessageProcessorTemplate.java:86) ~[mule-module-http-3.8.2.jar:3.8.2]
     at org.mule.execution.AsyncResponseFlowProcessingPhase.runPhase(AsyncResponseFlowProcessingPhase.java:78) ~[mule-core-3.8.2.jar:3.8.2]
     at org.mule.execution.AsyncResponseFlowProcessingPhase.runPhase(AsyncResponseFlowProcessingPhase.java:35) ~[mule-core-3.8.2.jar:3.8.2]
     at org.mule.execution.PhaseExecutionEngine$InternalPhaseExecutionEngine.phaseSuccesfully(PhaseExecutionEngine.java:65) ~[mule-core-3.8.2.jar:3.8.2]
     at org.mule.execution.PhaseExecutionEngine$InternalPhaseExecutionEngine.phaseSuccesfully(PhaseExecutionEngine.java:69) ~[mule-core-3.8.2.jar:3.8.2]
     at com.mulesoft.mule.throttling.ThrottlingPhase.runPhase(ThrottlingPhase.java:187) ~[mule-module-throttling-ee-3.8.2.jar:3.8.2]
     at com.mulesoft.mule.throttling.ThrottlingPhase.runPhase(ThrottlingPhase.java:58) ~[mule-module-throttling-ee-3.8.2.jar:3.8.2]
     at org.mule.execution.PhaseExecutionEngine$InternalPhaseExecutionEngine.phaseSuccesfully(PhaseExecutionEngine.java:65) ~[mule-core-3.8.2.jar:3.8.2]
     at com.mulesoft.gateway.http.phases.GatewayValidationPhase.runPhase(GatewayValidationPhase.java:93) ~[gateway-core-3.8.2.jar:3.8.2]
     at com.mulesoft.gateway.http.phases.GatewayValidationPhase.runPhase(GatewayValidationPhase.java:49) ~[gateway-core-3.8.2.jar:3.8.2]
     at org.mule.execution.PhaseExecutionEngine$InternalPhaseExecutionEngine.phaseSuccesfully(PhaseExecutionEngine.java:65) ~[mule-core-3.8.2.jar:3.8.2]
     at org.mule.modules.cors.CorsPhase.runPhase(CorsPhase.java:113) ~[mule-module-cors-gw-3.8.2.jar:3.8.2]
     at org.mule.modules.cors.CorsPhase.runPhase(CorsPhase.java:40) ~[mule-module-cors-gw-3.8.2.jar:3.8.2]
     at org.mule.execution.PhaseExecutionEngine$InternalPhaseExecutionEngine.process(PhaseExecutionEngine.java:114) ~[mule-core-3.8.2.jar:3.8.2]
     at org.mule.execution.PhaseExecutionEngine.process(PhaseExecutionEngine.java:41) ~[mule-core-3.8.2.jar:3.8.2]
     at org.mule.execution.MuleMessageProcessingManager.processMessage(MuleMessageProcessingManager.java:32) ~[mule-core-3.8.2.jar:3.8.2]
     at org.mule.module.http.internal.listener.DefaultHttpListener$1.handleRequest(DefaultHttpListener.java:133) ~[mule-module-http-3.8.2.jar:3.8.2]
     at org.mule.module.http.internal.listener.grizzly.GrizzlyRequestDispatcherFilter.handleRead(GrizzlyRequestDispatcherFilter.java:83) ~[mule-module-http-3.8.2.jar:3.8.2]
     at org.glasfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) ~[grizzly-framework-2.3.26.jar:2.3.26]
     at org.glasfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) ~[grizzly-framework-2.3.26.jar:2.3.26]
     at org.glasfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) ~[grizzly-framework-2.3.26.jar:2.3.26]
     at org.glasfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) ~[grizzly-framework-2.3.26.jar:2.3.26]
     at org.glasfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) ~[grizzly-framework-2.3.26.jar:2.3.26]
     at org.glasfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) ~[grizzly-framework-2.3.26.jar:2.3.26]
     at org.glasfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:526) ~[grizzly-framework-2.3.26.jar:2.3.26]
     at org.glasfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) ~[grizzly-framework-2.3.26.jar:2.3.26]
     at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.run0(ExecutorPerServerAddressIOStrategy.java:102) ~[mule-module-http-3.8.2.jar:3.8.2]
     at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.access$100(ExecutorPerServerAddressIOStrategy.java:30) ~[mule-module-http-3.8.2.jar:3.8.2]
     at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy$WorkerThreadRunnable.run(ExecutorPerServerAddressIOStrategy.java:125) ~[mule-module-http-3.8.2.jar:3.8.2]
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]
     at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
  2017-09-25 10:39:42,848 logLevel="DEBUG" [[-auto-esb].msr-listener-httpConnector.worker.01] org.mule.module.http.internal.HttpMessageLogger: LISTENER
  HTTP/1.1 500 
  Content-Length: 0
  Content-Type: text/xml; charset=UTF-8
  Date: Mon, 25 Sep 2017 15:39:42 GMT
  Connection: close
  </code></pre>
  
  <p>Guessing if it has something to do with the response being multipart?</p>
  
  <pre><code>Content-Type: multipart/related; type="application/xop+xml"; boundary="uuid:7f7f18e7-44ab-44dc-bf18-33954bf602f9"; start="&lt;root.message@cxf.apache.org&gt;"; start-info="text/xml"
  </code></pre>