[
https://issues.apache.org/jira/browse/CAMEL-6720?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Moises Ventura Espejo updated CAMEL-6720:
-----------------------------------------
Attachment: ServiceInterfaceStrategy.java
Patched ServiceInterfaceStrategy
> SoapJaxbDataFormat not handling correctly SOAP action with request wrapper
> element
> ----------------------------------------------------------------------------------
>
> Key: CAMEL-6720
> URL: https://issues.apache.org/jira/browse/CAMEL-6720
> Project: Camel
> Issue Type: Bug
> Components: camel-soap
> Affects Versions: 2.12.0
> Reporter: Ondrej Fischer
> Priority: Minor
> Fix For: Future
>
> Attachments: ServiceInterfaceStrategy.java
>
>
> If an interface to be used as SOAP service interface is configured to have
> parameters wrapped in a request wrapper element (eg. using @RequestWrapper),
> then an attempt to invoke a its method will throw NPE:
> {code}
> java.lang.NullPointerException
> at
> org.apache.camel.dataformat.soap.name.ServiceInterfaceStrategy.findQNameForSoapActionOrType(ServiceInterfaceStrategy.java:207)
> at
> org.apache.camel.dataformat.soap.SoapJaxbDataFormat.createContentFromObject(SoapJaxbDataFormat.java:208)
> at
> org.apache.camel.dataformat.soap.Soap11DataFormatAdapter.doMarshal(Soap11DataFormatAdapter.java:77)
> at
> org.apache.camel.dataformat.soap.SoapJaxbDataFormat.marshal(SoapJaxbDataFormat.java:141)
> at
> org.apache.camel.processor.MarshalProcessor.process(MarshalProcessor.java:59)
> {code}
> The reason for this is sequence of following:
> # The ServiceInterfaceStrategy is creating a mapping of methods to MethodInfo.
> # In case of RequestWrapper, the wrapper class is used as a single input
> TypeInfo, and no TypeInfo is being held for the real parameters.
> # At method invocation, it tries to lookup the TypeInfo in the MethodInfo,
> but for the real parameter class, and it only contains mapping for the
> request wrapper. So it fails with NPE.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)