[ https://issues.apache.org/jira/browse/TUSCANY-1949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12555995#action_12555995 ]
Greg Dritschler commented on TUSCANY-1949: ------------------------------------------ Can property elements have extension elements? If not maybe the correct solution is to remove the code that tries to associate extensions with properties? // Add the extension element to the current // element if (callback != null) { callback.getExtensions().add(extension); } else if (contract != null) { contract.getExtensions().add(extension); } else if (property != null) { property.getExtensions().add(extension); } else if (component != null) { component.getExtensions().add(extension); } else { composite.getExtensions().add(extension); } > import.sdo element is not resolved if it follows a property element > ------------------------------------------------------------------- > > Key: TUSCANY-1949 > URL: https://issues.apache.org/jira/browse/TUSCANY-1949 > Project: Tuscany > Issue Type: Bug > Components: Java SCA Assembly Model > Affects Versions: Java-SCA-1.0 > Reporter: Greg Dritschler > Priority: Minor > > I have an SCA composite that uses both a property element and an import.sdo > element. If the property element appears before the import.sdo element as > shown below, then the application fails during execution when it tries to > create an SDO. > <composite ... > <component ... > <property name="p" type="xsd:string">XYZZY</property> > </component> > <dbsdo:import.sdo .../> > </composite> > If I reorder the elements as shown below then the application works. > <composite ... > <dbsdo:import.sdo .../> > <component ... > <property name="p" type="xsd:string">XYZZY</property> > </component> > </composite> > I found the problem in CompositeProcessor. When a property element is found, > it calls a method readPropertyValue. This method consumes the property end > element so CompositeProcessor won't see it. Since CompositeProcessor does > not see the property end element, it does not clear the "property" method > variable. Then when it processes the import.sdo element, it sees the > "property" variable is non-null and mistakenly associates the import.sdo > extension with the property instead of with the composite. > I was able to work around the problem by clearing the property variable after > the readPropertyValue call as shown below. (There are actually two such > calls, one for component level and one for composite level, and I cleared it > in both cases.) > // Read the property value > Document value = > readPropertyValue(property.getXSDElement(), property.getXSDType(), reader); > property.setValue(value); > > composite.getProperties().add(property); > property = null; // **WORKAROUND** -- 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]