Igor Vorobiov created ODE-1031: ---------------------------------- Summary: Deployment error - captureSchema: NULL model (unknown error) Key: ODE-1031 URL: https://issues.apache.org/jira/browse/ODE-1031 Project: ODE Issue Type: Bug Components: BPEL Compilation/Parsing Affects Versions: 1.3.6 Reporter: Igor Vorobiov Priority: Minor
Prerequirements: before reproduce and workaround the issue need to apply the fix for problem with using several internal schemas. It is commited in the trunk: https://github.com/apache/ode/commit/ccdba9fab2eb9821ab96f05a96dab65c27d3cb14 There is problem with schema capturing for wsdl that contains internal schemas and one imports another: {code:xml} <wsdl:types> <xsd:schema targetNamespace="http://ode/bpel/unit-test.wsdl"> <xsd:import namespace="http://ode/bpel/import/types" /> <xsd:simpleType name="dummy"> <xsd:restriction base="d:dummyType" /> </xsd:simpleType> </xsd:schema> <xsd:schema targetNamespace="http://ode/bpel/import/types"> <xsd:simpleType name="dummyType"> <xsd:restriction base="xsd:string" /> </xsd:simpleType> </xsd:schema> </wsdl:types> {code} To workaround this problem it is enough to change schemas order(put "http://ode/bpel/import/types" on the top). Bug is related to resolving entity in org.apache.ode.bpel.compiler.WsdlFinderXMLEntityResolver.resolveEntity(XMLResourceIdentifier). This method searches imported schemas in the _internalSchemas map: _internalSchemas.get(new URI(resourceIdentifier.getNamespace())) This map is populated in org.apache.ode.bpel.compiler.WSDLRegistry.captureSchemas(Definition, ResourceFinder, URI). But since second(imported) schema is not put to map so "resolveEntity" returns null. To fix the problem we need to populate _internalSchemas map before schema capturing. Attached: - HelloWorld2.zip that can be used to reproduce the issue; - ODE.log where error can be found if DEBUG level is enabled for "org.apache.ode.utils.xsd" package; - my fix "WSDLRegistry.zip\WSDLRegistry(my fix).java". -- This message was sent by Atlassian JIRA (v6.3.4#6332)