JAX-W:NullPointerException in MethodMarshalerUtils
--------------------------------------------------

                 Key: AXIS2-4667
                 URL: https://issues.apache.org/jira/browse/AXIS2-4667
             Project: Axis2
          Issue Type: Bug
          Components: jaxws
            Reporter: Rich Scheuerle
            Assignee: Rich Scheuerle


Background:
-----------------
A wsdl operation may defined one or more message parts that are mapped to 
header elements.  This is unusual, but it is allowed by the specification.
In JAX-WS, these header mapped parameters can be designed using the @WebParam 
annotation.  Here is an example:

@WebMethod                                                      
@WebResult(name = "String",  targetNamespace = "http://sample";,  partName = 
"result")                                 
public String myOperation(                                      
        @WebParam(name = "BodyInteger",   targetNamespace = "http://sample";, 
partName = "bodyParam")                       
        int bodyParam,                                          
        @WebParam(name = "HeaderString",  targetNamespace = "http://sample";,   
partName = "headerParam",  header=true)                                   
        String headerParam)                                     
    ;                              

Problem:
-------------

A remote node may send a message that lacks the header element for the 
parameter.   This causes a NullPointerException.

Here is the location of the NullPointerException:

org.apache.axis2.jaxws.ExceptionFactory
logRootCause stack:java.lang.NullPointerException
at
org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils
.getPDElements(MethodMarshallerUtils.java:335)
at
org.apache.axis2.jaxws.marshaller.impl.alt.DocLitBareMethodMarsh
aller.demarshalResponse(DocLitBareMethodMarshaller.java:133)
at

Solution:
------------

The JAX-WS code should properly accommodate the missing header parameter.  
A validation test will be provided to verify the new code.

Note: the JAX-WS Proxy engine currently sends a header element with a 
xsi:nil="true" if the java argument for the parameter is null. 
We believe that this is the safest and most correct behavior.
However, I am adding a new JAX-WS RequestContext property which will allow a 
user to specify that no header element should be sent in such cases.
This new property is used by the validation test.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
For additional commands, e-mail: java-dev-h...@axis.apache.org

Reply via email to