wsdl output specified as being dime causes a NPE in WSDL2Java
-------------------------------------------------------------

         Key: AXIS-2104
         URL: http://issues.apache.org/jira/browse/AXIS-2104
     Project: Apache Axis
        Type: Bug
  Components: WSDL processing  
    Versions: beta-3    
 Environment: Windows 2000, Sun java build 1.5.0_02-b09, Axis 1.3 taken from 
nightly build area, on 7th July 2005 (16:30 GMT)
    Reporter: david barker


I copied an example wsdl file I found:

I had a wsdl operation with an input that was specified as being DIME encoded.  
WSDL2Java accepted it.

I added an output and similarly specified it as DIME.  WSDL2Java crashed with 
this stack:
java.lang.NullPointerException
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.fillInDIMEInformation(SymbolTable.java:2712)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.fillInBindingInfo(SymbolTable.java:2627)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populateBindings(SymbolTable.java:2535)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:744)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:543)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:518)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)
        at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
        at java.lang.Thread.run(Unknown Source)

In version 1.2.1, the stack is not quite the same:
java.lang.NullPointerException
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.fillInDIMEInformation(SymbolTable.java:2751)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.fillInBindingInfo(SymbolTable.java:2626)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populateBindings(SymbolTable.java:2534)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:744)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:543)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:518)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)
        at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
        at java.lang.Thread.run(Unknown Source)


WSDL is:
<?xml version="1.0" ?>
<wsdl:definitions
 name="DIME Example"
 targetNamespace="http://example.com/DimeExample/Service/";
 xmlns:svc="http://example.com/DimeExample/Service/";
 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
 xmlns:dime="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/";
 xmlns:content= "http://schemas.xmlsoap.org/ws/2002/04/content-type/";
 xmlns:ref="http://schemas.xmlsoap.org/ws/2002/04/reference/";
 xmlns:msg="http://example.com/DimeExample/Messages/";
 xmlns:xs="http://www.w3.org/2001/XMLSchema";>

 <wsdl:types>
  <xs:schema
   targetNamespace="http://example.com/DimeExample/Messages/";
   elementFormDefault="qualified">
  
   <xs:import namespace="http://schemas.xmlsoap.org/ws/2002/04/content-type/"/>
   <xs:import namespace="http://schemas.xmlsoap.org/ws/2002/04/reference/"/>

   <xs:element name="PutCompanyInfo">
    <xs:complexType>
     <xs:sequence>
    
      <xs:element name="tickerSymbol" type="xs:string"/>
      <xs:element name="logo" type="msg:Logo" minOccurs="0"/>
      <xs:element name="doc" type="msg:Doc" minOccurs="0" 
maxOccurs="unbounded"/>
      <xs:element name="report" type="msg:Report"/> 

     </xs:sequence>
    </xs:complexType>
   </xs:element>
  
   <xs:complexType name="ReferencedBinary">
    <xs:simpleContent>
     <xs:extension base="xs:base64Binary">
      <xs:attribute ref="ref:location" use="optional"/>
     </xs:extension>
    </xs:simpleContent>
   </xs:complexType>

   <xs:complexType name="Logo">
    <xs:simpleContent>
     <xs:restriction base="msg:ReferencedBinary">
      <xs:annotation>
       <xs:appinfo>
        <content:mediaType type="image/jpeg"/>
        <content:mediaType type="image/gif"/>
       </xs:appinfo>
      </xs:annotation>
     </xs:restriction>
    </xs:simpleContent>    
   </xs:complexType>

   <xs:complexType name="Doc">
    <xs:simpleContent>
     <xs:restriction base="msg:ReferencedBinary">
      <xs:annotation>
       <xs:appinfo>
        <content:mediaType
         type="text/html; charset=ISO-8859-1"/>
       </xs:appinfo>
      </xs:annotation>
     </xs:restriction>
    </xs:simpleContent>    
   </xs:complexType>
  
   <xs:complexType name="Report">
    <xs:simpleContent>
     <xs:restriction base="msg:ReferencedBinary">
      <xs:annotation>
       <xs:appinfo>
        <content:documentType value="msg:report"/>
       </xs:appinfo>
      </xs:annotation>
     </xs:restriction>
    </xs:simpleContent>    
   </xs:complexType>
  
   <xs:element name="report">
    <xs:complexType>
     <xs:sequence>
      <xs:element name="title" type="xs:string"/>
      <!-- etc. -->
     </xs:sequence>
    </xs:complexType>
   </xs:element>
  
  </xs:schema>

 </wsdl:types>

 <wsdl:message name="PutCompanyInfo">
  <wsdl:part name="body" element="msg:PutCompanyInfo"/>
 </wsdl:message>

 <wsdl:portType name="PortType">
  <wsdl:operation name="PutCompanyInfo">
   <wsdl:input message="svc:PutCompanyInfo"/>
  </wsdl:operation>
 </wsdl:portType>

 <wsdl:binding name="SoapDimeBinding" type="svc:PortType">
 
  <soap:binding
   transport="http://schemas.xmlsoap.org/soap/http";
   style="document"/>

  <wsdl:operation name="PutCompanyInfo">

   <soap:operation
    soapAction="http://example.com/PutCompanyInfo"/>

   <wsdl:input>
    <dime:message
     layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout";
     wsdl:required="true"/>
    <soap:body parts="body" use="literal"/>
   </wsdl:input>

   <wsdl:output>
    <dime:message
     layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout";
     wsdl:required="true"/>
    <soap:body use="literal"/>
   </wsdl:output>

  </wsdl:operation>

 </wsdl:binding>
 
 <wsdl:service name="DimeExample">
  <wsdl:port name="SoapDimePort" binding="svc:SoapDimeBinding">
   <soap:address location="http://example.com/DimeExample/"/>
  </wsdl:port>
 </wsdl:service>
 
</wsdl:definitions>


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

Reply via email to