[
https://issues.apache.org/jira/browse/CAMEL-7069?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aki Yoshida resolved CAMEL-7069.
--------------------------------
Resolution: Fixed
> Sending an empty soap body message to a generic provider camel-cxf consumer
> results in NPE
> ------------------------------------------------------------------------------------------
>
> Key: CAMEL-7069
> URL: https://issues.apache.org/jira/browse/CAMEL-7069
> Project: Camel
> Issue Type: Bug
> Components: camel-cxf
> Affects Versions: 2.12.2
> Reporter: Aki Yoshida
> Assignee: Aki Yoshida
>
> In some cases, CXFPayload is instantiated with a null body and this is
> causing an NPE later in the processing.
> Caused by: java.lang.NullPointerException
> at org.apache.camel.component.cxf.CxfPayload$1.size(CxfPayload.java:105)
> at
> org.apache.camel.component.cxf.converter.NodeListWrapper.getLength(NodeListWrapper.java:33)
> at
> org.apache.camel.converter.jaxp.DomConverter.toString(DomConverter.java:69)
> at
> org.apache.camel.converter.jaxp.DomConverter.toByteArray(DomConverter.java:142)
> at
> org.apache.camel.converter.jaxp.DomConverter.toInputStream(DomConverter.java:137)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> What is not sure is how we should fix it.
> CXFPayload is not checking whether the body is null when it is instantiated.
> In that case, some methods will lead to NPE but some are not (like
> getBodySources() or getHeaders()). And there are some test cases passing a
> null body.
> So I think, we should either
> 1. change CXFPayload to automatically creates an empty body (i.e., an empty
> List<Source>) when the body passed to the constructor is null, or
> 2. add this null->empty handling in DefaultCXFBinding.getPayloadBodyElements
> when extracting the body and pass an empty list to the CXFPayload constructor
> in this case, or
> 3. just throws a specific exception instead of NPE in this particular case.
> In any case, we need to clarify what is the correct usage of CXFPayload.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)