[ 
https://issues.apache.org/jira/browse/AXIS2C-768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12551733
 ] 

Dimuthu Gamage commented on AXIS2C-768:
---------------------------------------

Hi Bill,
The patch is applied, except the line 3468 where you suggest NULL as the return 
type in failure in that particular function, But there are cases where the 
retun type is a simple type like int, float. Currently I commented that piece 
of code,

> Null pointer exception in WSDL2C compiling schema when generating ADB
> ---------------------------------------------------------------------
>
>                 Key: AXIS2C-768
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-768
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: wsdl2c tool
>    Affects Versions: Current (Nightly)
>         Environment: Windows XP
>            Reporter: Bill Mitchell
>             Fix For: 1.2.0
>
>         Attachments: CADBBeanTemplateHeader.xsl.diff, 
> CADBBeanTemplateSource.xsl.diff, case23.tar.gz
>
>
> When I attempt to generate C bindings for the WSDL file below, the WSDL2C 
> utility fails with a null pointer exception without generating any stub code 
> whatsoever.  
> The exception trace is:
> >java org.apache.axis2.wsdl.WSDL2C -or -d adb -wv 1.1 -u -uri service.wsdl
> Retrieving document at 'service.wsdl'.
> Exception in thread "main" 
> org.apache.axis2.wsdl.codegen.CodeGenerationException: 
> java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
>         at 
> org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:278)
>         at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
>         at org.apache.axis2.wsdl.WSDL2C.main(WSDL2C.java:31)
> Caused by: java.lang.RuntimeException: 
> java.lang.reflect.InvocationTargetException
>         at 
> org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:53)
>         at 
> org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:231)
>         ... 2 more
> Caused by: java.lang.reflect.InvocationTargetException
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>         at java.lang.reflect.Method.invoke(Unknown Source)
>         at 
> org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:50)
>         ... 3 more
> Caused by: org.apache.axis2.schema.SchemaCompilationException: 
> java.lang.NullPointerException
>         at 
> org.apache.axis2.schema.writer.CStructWriter.write(CStructWriter.java:197)
>         at 
> org.apache.axis2.schema.SchemaCompiler.writeComplexType(SchemaCompiler.java:939)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processNamedComplexSchemaType(SchemaCompiler.java:925)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processComplexContent(SchemaCompiler.java:1087)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processContentModel(SchemaCompiler.java:1054)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processComplexType(SchemaCompiler.java:998)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processNamedComplexSchemaType(SchemaCompiler.java:919)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processSchema(SchemaCompiler.java:833)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:531)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:491)
>         at 
> org.apache.axis2.schema.SchemaCompiler.process(SchemaCompiler.java:1904)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processParticle(SchemaCompiler.java:1791)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processComplexContent(SchemaCompiler.java:1170)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processContentModel(SchemaCompiler.java:1054)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processComplexType(SchemaCompiler.java:998)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processNamedComplexSchemaType(SchemaCompiler.java:919)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processSchema(SchemaCompiler.java:833)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:531)
>         at 
> org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:502)
>         at 
> org.apache.axis2.schema.SchemaCompiler.compile(SchemaCompiler.java:309)
>         at 
> org.apache.axis2.schema.SchemaCompiler.compile(SchemaCompiler.java:219)
>         at 
> org.apache.axis2.schema.ExtensionUtility.invoke(ExtensionUtility.java:80)
>         ... 8 more
> Caused by: java.lang.NullPointerException
>         at 
> org.apache.axis2.schema.writer.CStructWriter.addPropertyEntries(CStructWriter.java:635)
>         at 
> org.apache.axis2.schema.writer.CStructWriter.populateInfo(CStructWriter.java:516)
>         at 
> org.apache.axis2.schema.writer.CStructWriter.getBeanElement(CStructWriter.java:439)
>         at 
> org.apache.axis2.schema.writer.CStructWriter.process(CStructWriter.java:320)
>         at 
> org.apache.axis2.schema.writer.CStructWriter.write(CStructWriter.java:192)
>         ... 29 more
> I receive this failure both with the WSDL2C released in Axis2-1.3 and in the 
> current nightly build I downloaded yesterday.  Of course, it is a little 
> difficult to isolate what in the WSDL is causing the failure, as no stub code 
> is generated that might hint at the problem area.  The same WSDL is accepted 
> by the Axis2 WSDL2Java utility, so the issue is specific to C code 
> generation.  As the WSDL2Java utility accepts the file, this suggests that 
> the WSDL itself is valid.  If -d none is specified on the command line, the 
> WSDL2C utility runs to completion, so the issue is specific to the generation 
> of the C data bindings.  
> The contents of service.wsdl are:
> <?xml version="1.0"?>
> <definitions xmlns:fw="http://frameware.xcentrisity.com/services/"; 
> xmlns="http://schemas.xmlsoap.org/wsdl/"; 
> xmlns:ns="http://www.w3.org/2001/XMLSchema"; 
> xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"; 
> xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
> targetNamespace="http://frameware.xcentrisity.com/services/"; name="Frameware" 
> ns:schemaLocation="http://schemas.xmlsoap.org/wsdl/ 
> http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd";>
>       <types>
>               <schema 
> targetNamespace="http://frameware.xcentrisity.com/services/"; 
> xmlns="http://www.w3.org/2001/XMLSchema";>
>                       <complexType name="ModelType">
>                               <sequence>
>                                       <any namespace="##local" minOccurs="1" 
> maxOccurs="1"/>
>                               </sequence>
>                       </complexType>
>                       <complexType name="ExemplarType">
>                               <complexContent>
>                                       <extension base="fw:ModelType">
>                                               <attribute name="handle" 
> type="string" use="required"/>
>                                       </extension>
>                               </complexContent>
>                       </complexType>
>                       <complexType name="InstanceType">
>                               <complexContent>
>                                       <extension base="fw:ModelType">
>                                               <attribute name="handle" 
> type="string" use="required"/>
>                                       </extension>
>                               </complexContent>
>                       </complexType>
>                       <complexType name="getExemplarType">
>                               <attribute name="name" type="string" 
> use="required"/>
>                               <attribute name="exemplarHandle" type="string" 
> use="required"/>
>                       </complexType>
>                       <complexType name="getExemplarResponseType">
>                               <complexContent>
>                                       <restriction base="anyType">
>                                               <sequence>
>                                                       <element 
> name="exemplar" type="fw:ExemplarType"/>
>                                               </sequence>
>                                               <attributeGroup 
> ref="fw:ResponseAttributeGroup"/>
>                                               <attribute 
> name="supportedMethods" type="fw:MethodListType" use="optional"/>
>                                       </restriction>
>                               </complexContent>
>                       </complexType>
>                       <complexType name="BrowseResponseType">
>                               <complexContent>
>                                       <restriction base="anyType">
>                                               <sequence>
>                                                       <element 
> name="instance" type="fw:InstanceType" minOccurs="0" maxOccurs="unbounded"/>
>                                               </sequence>
>                                               <attributeGroup 
> ref="fw:ResponseAttributeGroup"/>
>                                       </restriction>
>                               </complexContent>
>                       </complexType>
>                       <complexType name="BrowseConditionsType">
>                               <complexContent>
>                                       <restriction base="anyType">
>                                               <sequence>
>                                                       <element 
> name="conditionInstance" maxOccurs="unbounded">
>                                                               <complexType>
>                                                                       
> <complexContent>
>                                                                               
> <extension base="fw:ModelType">
>                                                                               
>         <attribute name="termIndex" type="unsignedInt" use="optional" 
> default="1"/>
>                                                                               
>         <attribute name="term-index" type="unsignedInt" use="optional" 
> default="1"/>
>                                                                               
>         <attribute name="constraint" type="string" use="required"/>
>                                                                               
> </extension>
>                                                                       
> </complexContent>
>                                                               </complexType>
>                                                       </element>
>                                               </sequence>
>                                               <attribute name="name" 
> type="string" use="required"/>
>                                               <attribute name="limit" 
> type="unsignedInt" use="optional"/>
>                                               <attribute 
> name="exemplarHandle" type="string" use="required"/>
>                                               <attribute name="handle" 
> type="string" use="optional"/>
>                                               <attribute name="userId" 
> type="string" use="optional"/>
>                                               <attribute name="userName" 
> type="string" use="optional"/>
>                                       </restriction>
>                               </complexContent>
>                       </complexType>
>                       <complexType name="CreateType">
>                               <complexContent>
>                                       <restriction base="anyType">
>                                               <sequence>
>                                                       <element 
> name="instance" type="fw:ModelType"/>
>                                               </sequence>
>                                               <attribute name="name" 
> type="string" use="required"/>
>                                               <attribute name="limit" 
> type="unsignedInt" use="optional"/>
>                                               <attribute name="handle" 
> type="string" use="optional"/>
>                                               <attribute 
> name="exemplarHandle" type="string" use="required"/>
>                                               <attribute name="userId" 
> type="string" use="optional"/>
>                                               <attribute name="userName" 
> type="string" use="optional"/>
>                                       </restriction>
>                               </complexContent>
>                       </complexType>
>                       <complexType name="RetrieveType">
>                               <attribute name="name" type="string" 
> use="required"/>
>                               <attribute name="handle" type="string" 
> use="required"/>
>                               <attribute name="limit" type="unsignedInt" 
> use="optional"/>
>                               <attribute name="exemplarHandle" type="string" 
> use="required"/>
>                               <attribute name="userId" type="string" 
> use="optional"/>
>                               <attribute name="userName" type="string" 
> use="optional"/>
>                       </complexType>
>                       <complexType name="UpdateType">
>                               <complexContent>
>                                       <restriction base="anyType">
>                                               <sequence>
>                                                       <element 
> name="instance" type="fw:ModelType"/>
>                                               </sequence>
>                                               <attribute name="name" 
> type="string" use="required"/>
>                                               <attribute name="limit" 
> type="unsignedInt" use="optional"/>
>                                               <attribute name="handle" 
> type="string" use="required"/>
>                                               <attribute 
> name="exemplarHandle" type="string" use="required"/>
>                                               <attribute name="userId" 
> type="string" use="optional"/>
>                                               <attribute name="userName" 
> type="string" use="optional"/>
>                                       </restriction>
>                               </complexContent>
>                       </complexType>
>                       <complexType name="DeleteType">
>                               <attribute name="name" type="string" 
> use="required"/>
>                               <attribute name="handle" type="string" 
> use="required"/>
>                               <attribute name="exemplarHandle" type="string" 
> use="required"/>
>                               <attribute name="userId" type="string" 
> use="optional"/>
>                               <attribute name="userName" type="string" 
> use="optional"/>
>                       </complexType>
>                       <complexType name="StatusResponseType">
>                               <attributeGroup 
> ref="fw:ResponseAttributeGroup"/>
>                       </complexType>
>                       <complexType name="InstanceResponseType">
>                               <complexContent>
>                                       <restriction base="anyType">
>                                               <sequence>
>                                                       <element 
> name="instance" type="fw:InstanceType" minOccurs="0" maxOccurs="1"/>
>                                               </sequence>
>                                               <attributeGroup 
> ref="fw:ResponseAttributeGroup"/>
>                                       </restriction>
>                               </complexContent>
>                       </complexType>
>                       <simpleType name="MethodListType">
>                               <list itemType="string"/>
>                       </simpleType>
>                       <attributeGroup name="ResponseAttributeGroup">
>                               <attribute name="responseCode" type="integer" 
> use="optional" default="0"/>
>                               <attribute name="responseMessage" type="string" 
> use="optional"/>
>                       </attributeGroup>
>                       <element name="getExemplar" type="fw:getExemplarType"/>
>                       <element name="getExemplarResponse" 
> type="fw:getExemplarResponseType"/>
>                       <element name="browse" type="fw:BrowseConditionsType"/>
>                       <element name="browseResponse" 
> type="fw:BrowseResponseType"/>
>                       <element name="browseNext" 
> type="fw:BrowseConditionsType"/>
>                       <element name="browseNextResponse" 
> type="fw:BrowseResponseType"/>
>                       <element name="browsePrevious" 
> type="fw:BrowseConditionsType"/>
>                       <element name="browsePreviousResponse" 
> type="fw:BrowseResponseType"/>
>                       <element name="create" type="fw:CreateType"/>
>                       <element name="createResponse" 
> type="fw:InstanceResponseType"/>
>                       <element name="retrieve" type="fw:RetrieveType"/>
>                       <element name="retrieveResponse" 
> type="fw:InstanceResponseType"/>
>                       <element name="update" type="fw:UpdateType"/>
>                       <element name="updateResponse" 
> type="fw:InstanceResponseType"/>
>                       <element name="delete" type="fw:DeleteType"/>
>                       <element name="deleteResponse" 
> type="fw:StatusResponseType"/>
>               </schema>
>       </types>
>       <message name="getExemplarRequest">
>               <part name="getExemplarRequest" element="fw:getExemplar"/>
>       </message>
>       <message name="getExemplarResponse">
>               <part name="getExemplarResponse" 
> element="fw:getExemplarResponse"/>
>       </message>
>       <message name="browseRequest">
>               <part name="browseRequest" element="fw:browse"/>
>       </message>
>       <message name="browseResponse">
>               <part name="browseResponse" element="fw:browseResponse"/>
>       </message>
>       <message name="browseNextRequest">
>               <part name="browseNext" element="fw:browseNext"/>
>       </message>
>       <message name="browseNextResponse">
>               <part name="browseNextResponse" 
> element="fw:browseNextResponse"/>
>       </message>
>       <message name="browsePreviousRequest">
>               <part name="browsePrevious" element="fw:browsePrevious"/>
>       </message>
>       <message name="browsePreviousResponse">
>               <part name="browsePreviousResponse" 
> element="fw:browsePreviousResponse"/>
>       </message>
>       <message name="createRequest">
>               <part name="create" element="fw:create"/>
>       </message>
>       <message name="createResponse">
>               <part name="createResponse" element="fw:createResponse"/>
>       </message>
>       <message name="retrieveRequest">
>               <part name="retrieve" element="fw:retrieve"/>
>       </message>
>       <message name="retrieveResponse">
>               <part name="retrieveResponse" element="fw:retrieveResponse"/>
>       </message>
>       <message name="updateRequest">
>               <part name="updateRequest" element="fw:update"/>
>       </message>
>       <message name="updateResponse">
>               <part name="updateResponse" element="fw:updateResponse"/>
>       </message>
>       <message name="deleteRequest">
>               <part name="deleteRequest" element="fw:delete"/>
>       </message>
>       <message name="deleteResponse">
>               <part name="deleteResponse" element="fw:deleteResponse"/>
>       </message>
>       <portType name="IFramewareService">
>               <operation name="getExemplar">
>                       <input message="fw:getExemplarRequest"/>
>                       <output message="fw:getExemplarResponse"/>
>               </operation>
>               <operation name="browse">
>                       <input message="fw:browseRequest"/>
>                       <output message="fw:browseResponse"/>
>               </operation>
>               <operation name="browseNext">
>                       <input message="fw:browseNextRequest"/>
>                       <output message="fw:browseNextResponse"/>
>               </operation>
>               <operation name="browsePrevious">
>                       <input message="fw:browsePreviousRequest"/>
>                       <output message="fw:browsePreviousResponse"/>
>               </operation>
>               <operation name="create">
>                       <input message="fw:createRequest"/>
>                       <output message="fw:createResponse"/>
>               </operation>
>               <operation name="retrieve">
>                       <input message="fw:retrieveRequest"/>
>                       <output message="fw:retrieveResponse"/>
>               </operation>
>               <operation name="update">
>                       <input message="fw:updateRequest"/>
>                       <output message="fw:updateResponse"/>
>               </operation>
>               <operation name="delete">
>                       <input message="fw:deleteRequest"/>
>                       <output message="fw:deleteResponse"/>
>               </operation>
>       </portType>
>       <binding name="FramewareSoapBinding" type="fw:IFramewareService">
>               <soap:binding style="document" 
> transport="http://schemas.xmlsoap.org/soap/http"/>
>               <operation name="getExemplar">
>                       <soap:operation 
> soapAction="http://services.xcentrisity.com/frameware/getExemplar"/>
>                       <input>
>                               <soap:body use="literal"/>
>                       </input>
>                       <output>
>                               <soap:body use="literal"/>
>                       </output>
>               </operation>
>               <operation name="browse">
>                       <soap:operation 
> soapAction="http://services.xcentrisity.com/frameware/browse"/>
>                       <input>
>                               <soap:body use="literal"/>
>                       </input>
>                       <output>
>                               <soap:body use="literal"/>
>                       </output>
>               </operation>
>               <operation name="browseNext">
>                       <soap:operation 
> soapAction="http://services.xcentrisity.com/frameware/browseNext"/>
>                       <input>
>                               <soap:body use="literal"/>
>                       </input>
>                       <output>
>                               <soap:body use="literal"/>
>                       </output>
>               </operation>
>               <operation name="browsePrevious">
>                       <soap:operation 
> soapAction="http://services.xcentrisity.com/frameware/browsePrevious"/>
>                       <input>
>                               <soap:body use="literal"/>
>                       </input>
>                       <output>
>                               <soap:body use="literal"/>
>                       </output>
>               </operation>
>               <operation name="create">
>                       <soap:operation 
> soapAction="http://services.xcentrisity.com/frameware/create"/>
>                       <input>
>                               <soap:body use="literal"/>
>                       </input>
>                       <output>
>                               <soap:body use="literal"/>
>                       </output>
>               </operation>
>               <operation name="retrieve">
>                       <soap:operation 
> soapAction="http://services.xcentrisity.com/frameware/retrieve"/>
>                       <input>
>                               <soap:body use="literal"/>
>                       </input>
>                       <output>
>                               <soap:body use="literal"/>
>                       </output>
>               </operation>
>               <operation name="update">
>                       <soap:operation 
> soapAction="http://services.xcentrisity.com/frameware/update"/>
>                       <input>
>                               <soap:body use="literal"/>
>                       </input>
>                       <output>
>                               <soap:body use="literal"/>
>                       </output>
>               </operation>
>               <operation name="delete">
>                       <soap:operation 
> soapAction="http://services.xcentrisity.com/frameware/delete"/>
>                       <input>
>                               <soap:body use="literal"/>
>                       </input>
>                       <output>
>                               <soap:body use="literal"/>
>                       </output>
>               </operation>
>       </binding>
>       <service name="FramewareService">
>               <port name="FramewareServicePort" 
> binding="fw:FramewareSoapBinding">
>                       <soap:address 
> location="http://localhost/Frameware/customers/customers.srf"/>
>               </port>
>       </service>
> </definitions>

-- 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to