[
https://issues.apache.org/activemq/browse/SM-1011?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guillaume Nodet resolved SM-1011.
---------------------------------
Resolution: Fixed
Fix Version/s: 3.1.3
Assignee: Guillaume Nodet
Thx a lot for this patch !
Sending
servicemix-common/src/main/java/org/apache/servicemix/common/tools/wsdl/SchemaCollection.java
Sending
servicemix-common/src/test/java/org/apache/servicemix/common/tools/wsdl/WSDLFlattenerTest.java
Adding servicemix-common/src/test/resources/includes
Adding servicemix-common/src/test/resources/includes/nested-a1.xsd
Adding servicemix-common/src/test/resources/includes/nested-b1.xsd
Adding servicemix-common/src/test/resources/includes/nested-b2.xsd
Adding servicemix-common/src/test/resources/includes/nested-b3.xsd
Adding servicemix-common/src/test/resources/includes/nested-c1.xsd
Adding servicemix-common/src/test/resources/includes/service.wsdl
Transmitting file data ........
Committed revision 580017.
Sending
servicemix-common/src/main/java/org/apache/servicemix/common/tools/wsdl/SchemaCollection.java
Sending
servicemix-common/src/test/java/org/apache/servicemix/common/tools/wsdl/WSDLFlattenerTest.java
Adding servicemix-common/src/test/resources/includes
Adding servicemix-common/src/test/resources/includes/nested-a1.xsd
Adding servicemix-common/src/test/resources/includes/nested-b1.xsd
Adding servicemix-common/src/test/resources/includes/nested-b2.xsd
Adding servicemix-common/src/test/resources/includes/nested-b3.xsd
Adding servicemix-common/src/test/resources/includes/nested-c1.xsd
Adding servicemix-common/src/test/resources/includes/service.wsdl
Transmitting file data ..
Committed revision 580018.
> WSDLFlattenner / SchemaCollection do not handle nested schemas inclusions
> properly
> ----------------------------------------------------------------------------------
>
> Key: SM-1011
> URL: https://issues.apache.org/activemq/browse/SM-1011
> Project: ServiceMix
> Issue Type: Bug
> Components: servicemix-common
> Affects Versions: 3.1.1
> Environment: Windows XP
> Reporter: Konrad Argasinski
> Assignee: Guillaume Nodet
> Fix For: 3.1.3, 3.2
>
> Attachments: nested schemas.txt, nested-schemas-reproduced-sm.zip
>
>
> WSDLFlattener fails to analyse JSR-181 SU WSDL which imports multi-level
> (nested) schemas structure.
> My JSR-181 SU WSDL imports A1.xsd schema. A1.xsd includes B1.xsd, B2.xsd and
> B3.xsd. B1.xsd includes C1.xsd.
> The schema is used by JAXB during the project build and it works ok, however
> when the SU gets deployed on ServiceMix I receive following error:
> <loc-message>NOT_FOUND_ERR: An attempt is made to reference a node in a
> context where it does not exist.</loc-message>
> <stack-trace><![CDATA[org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is
> made to reference a node in a context where it does not exist.
> at org.apache.xerces.dom.ParentNode.internalRemoveChild(Unknown Source)
> at org.apache.xerces.dom.ParentNode.removeChild(Unknown Source)
> at
> org.apache.servicemix.common.tools.wsdl.SchemaCollection.handleImports(SchemaCollection.java:150)
> The full stack trace is attached.
> As workaround I compiled my custom SchemaCollection and it works ok now,
> however I think a better fix is needed.
> My custom changes in org.apache.servicemix.common.tools.wsdl.SchemaCollection
> are:
> around line 149 I have replaced:
> String location = ce.getAttribute("schemaLocation");
> schema.getRoot().removeChild(ce);
> with:
> String location = ce.getAttribute("schemaLocation");
> Node parentNode = ce.getParentNode();
> Element root = schema.getRoot();
> if (root == parentNode) {
> log.debug("Removing child include node: " + ce);
> schema.getRoot().removeChild(ce);
> } else {
> log.warn("Skipping child include node removal: " + ce);
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.