You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Igor Vorobiov (JIRA)" <ji...@apache.org> on 2015/03/13 16:52:38 UTC

[jira] [Created] (ODE-1031) Deployment error - captureSchema: NULL model (unknown error)

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)