[ https://issues.apache.org/jira/browse/AXIS2C-768?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bill Mitchell updated AXIS2C-768: --------------------------------- Attachment: CADBBeanTemplateHeader.xsl.diff The attached .diff provides a suggested source change to fix problem (1) in the generated header files. > 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]