Ondrej Fischer created CAMEL-6720:
-------------------------------------

             Summary: 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


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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to