You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Willem Jiang (Resolved) (JIRA)" <ji...@apache.org> on 2011/11/09 14:43:51 UTC

[jira] [Resolved] (CAMEL-4649) NPE from DefaultCxfBinding when is null

     [ https://issues.apache.org/jira/browse/CAMEL-4649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Willem Jiang resolved CAMEL-4649.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 2.9.0
                   2.8.3
                   2.7.5

Applied patch with thanks to Xilai.
                
> NPE from DefaultCxfBinding when <soap:Body/> is null 
> -----------------------------------------------------
>
>                 Key: CAMEL-4649
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4649
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-cxf
>    Affects Versions: 2.8.2
>         Environment: Win 7, JDK1.6
>            Reporter: Xilai Dai
>            Assignee: Willem Jiang
>             Fix For: 2.7.5, 2.8.3, 2.9.0
>
>
> when got soap message from CXF component like this:
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> <soap:Header>
> ......
> </soap:Header>
> <soap:Body/>
> </soap:Envelope>
> the NPE will be thrown: 
> 18:04:51,255 | WARN  | tp1212500935-153 | ache.cxf.common.logging.LogUtils  372 |  -  -  | Interceptor for {http://airportsoap.sopera.de}airport#{http://airportsoap.sopera.de}getAirportInformationByISOCountryCode has thrown exception, unwinding now
> java.lang.NullPointerException
> 	at org.apache.camel.component.cxf.DefaultCxfBinding.getResponsePayloadList(DefaultCxfBinding.java:395)[163:org.apache.camel.camel-cxf:2.8.2]
> 	at org.apache.camel.component.cxf.DefaultCxfBinding.populateCxfResponseFromExchange(DefaultCxfBinding.java:318)[163:org.apache.camel.camel-cxf:2.8.2]
> 	at org.apache.camel.component.cxf.CxfConsumer$1.setResponseBack(CxfConsumer.java:176)[163:org.apache.camel.camel-cxf:2.8.2]
> 	at org.apache.camel.component.cxf.CxfConsumer$1.asyncInvoke(CxfConsumer.java:103)[163:org.apache.camel.camel-cxf:2.8.2]
> 	at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java:68)[163:org.apache.camel.camel-cxf:2.8.2]
> 	at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[141:org.apache.cxf.bundle:2.5.0]
> 	at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:93)[141:org.apache.cxf.bundle:2.5.0]
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)[141:org.apache.cxf.bundle:2.5.0]
> 	at org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:232)[141:org.apache.cxf.bundle:2.5.0]
> 	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:80)[141:org.apache.cxf.bundle:2.5.0]
> 	at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:323)[141:org.apache.cxf.bundle:2.5.0]
> 	at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:289)[141:org.apache.cxf.bundle:2.5.0]
> 	at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72)[141:org.apache.cxf.bundle:2.5.0]
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:939)[59:org.eclipse.jetty.server:7.4.5.v20110725]
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)[59:org.eclipse.jetty.server:7.4.5.v20110725]
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[59:org.eclipse.jetty.server:7.4.5.v20110725]
> 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:185)[59:org.eclipse.jetty.server:7.4.5.v20110725]
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)[59:org.eclipse.jetty.server:7.4.5.v20110725]
> 	at org.eclipse.jetty.server.Server.handleAsync(Server.java:391)[59:org.eclipse.jetty.server:7.4.5.v20110725]
> 	at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594)[59:org.eclipse.jetty.server:7.4.5.v20110725]
> 	at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:393)[59:org.eclipse.jetty.server:7.4.5.v20110725]
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535)[54:org.eclipse.jetty.io:7.4.5.v20110725]
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)[54:org.eclipse.jetty.io:7.4.5.v20110725]
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)[53:org.eclipse.jetty.util:7.4.5.v20110725]
> 	at java.lang.Thread.run(Thread.java:662)[:1.6.0_24]
> Looking into the source codes, before the line 395 of DefaultCxfBinding, the elements variable shoulde be checked if it's null.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira