Null pointer in RPCMessageReceiver. invokeBusinessLogic when QName is null for
outAxisMessage when returning from void web service call.
----------------------------------------------------------------------------------------------------------------------------------------
Key: AXIS2-1706
URL: http://issues.apache.org/jira/browse/AXIS2-1706
Project: Apache Axis 2.0 (Axis2)
Issue Type: Bug
Components: rpc
Affects Versions: 1.1
Environment: Windows XP with Axis2 1.1 running under Tomcat 5.0.28.
Also, using JDK 1.4.2_10.
Reporter: David R. Kraus
Issue is logged as Major for now, but soon (1-2 months) we will go into
production with this so this may become a Blocker for us. We need the ability
to create web service API methods which do not return a value.
Description:
Simple Logout web service API method simply disconnects an application session
and then experiences a null pointer exception when returning back through Axis
layer. The Logout methout has no return value(void).
Exception occurs on outaxismessage.getElementQName().getNamespaceURI() call
because the element QName is null (RPCMessageReceiver. invokeBusinessLogic ).
AxisMessage outaxisMessage =
op.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
if (inAxisMessage != null) {
messageNameSpace = outaxisMessage.getElementQName().getNamespaceURI();
//null pointer
}
Earlier in the method, inaxisMessage.getElementQName is checked for a null
value, leading me to believe that the listed code is in error.
Using Eclipse in debug mode, I skipped the offending code, and the operation
finished with no error, leading me to believe that a simple check for null
would work. Also, when I added a String return value to the method everything
worked fine.
Web Service method signature is:
public void logout(String sessionState) throws Exception;
...and no value is returned.
WSDL of the full Web Service follows. Logout is the method which causes the
exception. Logout2 is the the exact same method with a String return value,
which has no problem.
==============Start WSDL==========================
<wsdl:definitions xmlns:axis2="http://ws.apache.org/axis2"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:ns0="http://ws.apache.org/axis2/xsd"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:ns1="http://org.apache.axis2/xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://ws.apache.org/axis2"><wsdl:documentation>WusfDemo</wsdl:documentation><wsdl:types><xs:schema
xmlns:ns="http://ws.apache.org/axis2/xsd" attributeFormDefault="qualified"
elementFormDefault="qualified" targetNamespace="http://ws.apache.org/axis2/xsd">
<xs:element name="executeReportAsGraphFault">
<xs:complexType>
<xs:sequence>
<xs:element name="executeReportAsGraphFault" type="xs:anyType" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="executeReportAsGraph">
<xs:complexType>
<xs:sequence>
<xs:element name="sessionState" nillable="true" type="xs:string" />
<xs:element name="reportName" nillable="true" type="xs:string" />
<xs:element name="reportID" nillable="true" type="xs:string" />
<xs:element name="resultFlags" nillable="true" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="executeReportAsGraphResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="executeReportAsGridFault">
<xs:complexType>
<xs:sequence>
<xs:element name="executeReportAsGridFault" type="xs:anyType" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="executeReportAsGrid">
<xs:complexType>
<xs:sequence>
<xs:element name="sessionState" nillable="true" type="xs:string" />
<xs:element name="reportName" nillable="true" type="xs:string" />
<xs:element name="reportID" nillable="true" type="xs:string" />
<xs:element name="resultFlags" nillable="true" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="executeReportAsGridResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="loginFault">
<xs:complexType>
<xs:sequence>
<xs:element name="loginFault" type="xs:anyType" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="login">
<xs:complexType>
<xs:sequence>
<xs:element name="serverName" nillable="true" type="xs:string" />
<xs:element name="projectName" nillable="true" type="xs:string" />
<xs:element name="userName" nillable="true" type="xs:string" />
<xs:element name="password" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="loginResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="logout2Fault">
<xs:complexType>
<xs:sequence>
<xs:element name="logout2Fault" type="xs:anyType" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="logout2">
<xs:complexType>
<xs:sequence>
<xs:element name="sessionState" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="logout2Response">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="logoutFault">
<xs:complexType>
<xs:sequence>
<xs:element name="logoutFault" type="xs:anyType" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="logout">
<xs:complexType>
<xs:sequence>
<xs:element name="sessionState" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema></wsdl:types><wsdl:message
name="executeReportAsGridMessage"><wsdl:part name="part1"
element="ns0:executeReportAsGrid" /></wsdl:message><wsdl:message
name="executeReportAsGridResponse"><wsdl:part name="part1"
element="ns0:executeReportAsGridResponse" /></wsdl:message><wsdl:message
name="executeReportAsGridFault"><wsdl:part name="part1"
element="ns0:executeReportAsGridFault" /></wsdl:message><wsdl:message
name="loginMessage"><wsdl:part name="part1" element="ns0:login"
/></wsdl:message><wsdl:message name="loginResponse"><wsdl:part name="part1"
element="ns0:loginResponse" /></wsdl:message><wsdl:message
name="loginFault"><wsdl:part name="part1" element="ns0:loginFault"
/></wsdl:message><wsdl:message name="logout2Message"><wsdl:part name="part1"
element="ns0:logout2" /></wsdl:message><wsdl:message
name="logout2Response"><wsdl:part name="part1" element="ns0:logout2Response"
/></wsdl:message><wsdl:message name="logout2Fault"><wsdl:part name="part1"
element="ns0:logout2Fault" /></wsdl:message><wsdl:message
name="executeReportAsGraphMessage"><wsdl:part name="part1"
element="ns0:executeReportAsGraph" /></wsdl:message><wsdl:message
name="executeReportAsGraphResponse"><wsdl:part name="part1"
element="ns0:executeReportAsGraphResponse" /></wsdl:message><wsdl:message
name="executeReportAsGraphFault"><wsdl:part name="part1"
element="ns0:executeReportAsGraphFault" /></wsdl:message><wsdl:message
name="logoutMessage"><wsdl:part name="part1" element="ns0:logout"
/></wsdl:message><wsdl:message name="logoutResponse" /><wsdl:message
name="logoutFault"><wsdl:part name="part1" element="ns0:logoutFault"
/></wsdl:message><wsdl:portType name="WusfDemoPortType"><wsdl:operation
name="executeReportAsGrid"><wsdl:input
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
message="axis2:executeReportAsGridMessage"
wsaw:Action="urn:executeReportAsGrid" /><wsdl:output
message="axis2:executeReportAsGridResponse" /><wsdl:fault
message="axis2:executeReportAsGridFault" name="executeReportAsGridFault"
/></wsdl:operation><wsdl:operation name="login"><wsdl:input
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
message="axis2:loginMessage" wsaw:Action="urn:login" /><wsdl:output
message="axis2:loginResponse" /><wsdl:fault message="axis2:loginFault"
name="loginFault" /></wsdl:operation><wsdl:operation name="logout2"><wsdl:input
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
message="axis2:logout2Message" wsaw:Action="urn:logout2" /><wsdl:output
message="axis2:logout2Response" /><wsdl:fault message="axis2:logout2Fault"
name="logout2Fault" /></wsdl:operation><wsdl:operation
name="executeReportAsGraph"><wsdl:input
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
message="axis2:executeReportAsGraphMessage"
wsaw:Action="urn:executeReportAsGraph" /><wsdl:output
message="axis2:executeReportAsGraphResponse" /><wsdl:fault
message="axis2:executeReportAsGraphFault" name="executeReportAsGraphFault"
/></wsdl:operation><wsdl:operation name="logout"><wsdl:input
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
message="axis2:logoutMessage" wsaw:Action="urn:logout" /><wsdl:output
message="axis2:logoutResponse" /><wsdl:fault message="axis2:logoutFault"
name="logoutFault" /></wsdl:operation></wsdl:portType><wsdl:binding
name="WusfDemoSOAP11Binding" type="axis2:WusfDemoPortType"><soap:binding
transport="http://schemas.xmlsoap.org/soap/http" style="document"
/><wsdl:operation name="executeReportAsGrid"><soap:operation
soapAction="urn:executeReportAsGrid" style="document" /><wsdl:input><soap:body
use="literal" /></wsdl:input><wsdl:output><soap:body use="literal"
/></wsdl:output><wsdl:fault name="executeReportAsGridFault"><soap:body
use="literal" /></wsdl:fault></wsdl:operation><wsdl:operation
name="login"><soap:operation soapAction="urn:login" style="document"
/><wsdl:input><soap:body use="literal" /></wsdl:input><wsdl:output><soap:body
use="literal" /></wsdl:output><wsdl:fault name="loginFault"><soap:body
use="literal" /></wsdl:fault></wsdl:operation><wsdl:operation
name="logout2"><soap:operation soapAction="urn:logout2" style="document"
/><wsdl:input><soap:body use="literal" /></wsdl:input><wsdl:output><soap:body
use="literal" /></wsdl:output><wsdl:fault name="logout2Fault"><soap:body
use="literal" /></wsdl:fault></wsdl:operation><wsdl:operation
name="executeReportAsGraph"><soap:operation
soapAction="urn:executeReportAsGraph" style="document" /><wsdl:input><soap:body
use="literal" /></wsdl:input><wsdl:output><soap:body use="literal"
/></wsdl:output><wsdl:fault name="executeReportAsGraphFault"><soap:body
use="literal" /></wsdl:fault></wsdl:operation><wsdl:operation
name="logout"><soap:operation soapAction="urn:logout" style="document"
/><wsdl:input><soap:body use="literal" /></wsdl:input><wsdl:output><soap:body
use="literal" /></wsdl:output><wsdl:fault name="logoutFault"><soap:body
use="literal" /></wsdl:fault></wsdl:operation></wsdl:binding><wsdl:binding
name="WusfDemoSOAP12Binding" type="axis2:WusfDemoPortType"><soap12:binding
transport="http://schemas.xmlsoap.org/soap/http" style="document"
/><wsdl:operation name="executeReportAsGrid"><soap12:operation
soapAction="urn:executeReportAsGrid" style="document"
/><wsdl:input><soap12:body use="literal"
/></wsdl:input><wsdl:output><soap12:body use="literal"
/></wsdl:output><wsdl:fault name="executeReportAsGridFault"><soap12:fault
use="literal" name="executeReportAsGridFault"
/></wsdl:fault></wsdl:operation><wsdl:operation name="login"><soap12:operation
soapAction="urn:login" style="document" /><wsdl:input><soap12:body
use="literal" /></wsdl:input><wsdl:output><soap12:body use="literal"
/></wsdl:output><wsdl:fault name="loginFault"><soap12:fault use="literal"
name="loginFault" /></wsdl:fault></wsdl:operation><wsdl:operation
name="logout2"><soap12:operation soapAction="urn:logout2" style="document"
/><wsdl:input><soap12:body use="literal"
/></wsdl:input><wsdl:output><soap12:body use="literal"
/></wsdl:output><wsdl:fault name="logout2Fault"><soap12:fault use="literal"
name="logout2Fault" /></wsdl:fault></wsdl:operation><wsdl:operation
name="executeReportAsGraph"><soap12:operation
soapAction="urn:executeReportAsGraph" style="document"
/><wsdl:input><soap12:body use="literal"
/></wsdl:input><wsdl:output><soap12:body use="literal"
/></wsdl:output><wsdl:fault name="executeReportAsGraphFault"><soap12:fault
use="literal" name="executeReportAsGraphFault"
/></wsdl:fault></wsdl:operation><wsdl:operation name="logout"><soap12:operation
soapAction="urn:logout" style="document" /><wsdl:input><soap12:body
use="literal" /></wsdl:input><wsdl:output><soap12:body use="literal"
/></wsdl:output><wsdl:fault name="logoutFault"><soap12:fault use="literal"
name="logoutFault" /></wsdl:fault></wsdl:operation></wsdl:binding><wsdl:binding
name="WusfDemoHttpBinding" type="axis2:WusfDemoPortType"><http:binding
verb="POST" /><wsdl:operation name="executeReportAsGrid"><http:operation
location="executeReportAsGrid" /><wsdl:input><mime:content type="text/xml"
/></wsdl:input><wsdl:output><mime:content type="text/xml"
/></wsdl:output></wsdl:operation><wsdl:operation name="login"><http:operation
location="login" /><wsdl:input><mime:content type="text/xml"
/></wsdl:input><wsdl:output><mime:content type="text/xml"
/></wsdl:output></wsdl:operation><wsdl:operation name="logout2"><http:operation
location="logout2" /><wsdl:input><mime:content type="text/xml"
/></wsdl:input><wsdl:output><mime:content type="text/xml"
/></wsdl:output></wsdl:operation><wsdl:operation
name="executeReportAsGraph"><http:operation location="executeReportAsGraph"
/><wsdl:input><mime:content type="text/xml"
/></wsdl:input><wsdl:output><mime:content type="text/xml"
/></wsdl:output></wsdl:operation><wsdl:operation name="logout"><http:operation
location="logout" /><wsdl:input><mime:content type="text/xml"
/></wsdl:input><wsdl:output><mime:content type="text/xml"
/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service
name="WusfDemo"><wsdl:port name="WusfDemoSOAP11port_http"
binding="axis2:WusfDemoSOAP11Binding"><soap:address
location="http://localhost:8080/axis2/services/WusfDemo"
/></wsdl:port><wsdl:port name="WusfDemoSOAP12port_http"
binding="axis2:WusfDemoSOAP12Binding"><soap12:address
location="http://localhost:8080/axis2/services/WusfDemo"
/></wsdl:port><wsdl:port name="WusfDemoHttpport1"
binding="axis2:WusfDemoHttpBinding"><http:address
location="http://localhost:8080/axis2/rest/WusfDemo"
/></wsdl:port></wsdl:service></wsdl:definitions>
=====================end WSDL==================
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]