[ 
https://issues.apache.org/jira/browse/TUSCANY-1725?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12610735#action_12610735
 ] 

Christian Schuhegger commented on TUSCANY-1725:
-----------------------------------------------

one more comment:
during the compilation of the CollectionManagerModel.xsd via XSD2JavaGenerator 
the following stack trace is thrown:
     [java] >>  Generating 
/TargetProject/net/sourceforge/jclusterjobs/prototypes/collectionmanager/impl/CollectionmanagerFactoryImpl.java
     [java] org.eclipse.emf.common.util.WrappedException: 
org.eclipse.emf.codegen.jet.JETException: InvocationTargetException
     [java]     at 
org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter.generateJava(AbstractGeneratorAdapter.java:1046)
     [java]     at 
org.eclipse.emf.codegen.ecore.genmodel.generator.GenPackageGeneratorAdapter.generateFactoryClass(GenPackageGeneratorAdapter.java:383)
     [java]     at 
org.eclipse.emf.codegen.ecore.genmodel.generator.GenPackageGeneratorAdapter.generateModel(GenPackageGeneratorAdapter.java:199)
     [java]     at 
org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter.doGenerate(GenBaseGeneratorAdapter.java:214)
     [java]     at 
org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter.generate(AbstractGeneratorAdapter.java:275)
     [java]     at 
org.eclipse.emf.codegen.ecore.generator.Generator.generate(Generator.java:600)
     [java]     at 
org.eclipse.emf.codegen.ecore.generator.Generator.generate(Generator.java:512)
     [java]     at 
org.apache.tuscany.sdo.generate.JavaGenerator.generateFromGenModel(JavaGenerator.java:531)
     [java]     at 
org.apache.tuscany.sdo.generate.JavaGenerator.generatePackages(JavaGenerator.java:413)
     [java]     at 
org.apache.tuscany.sdo.generate.XSD2JavaGenerator.generateFromXMLSchema(XSD2JavaGenerator.java:212)
     [java]     at 
org.apache.tuscany.sdo.generate.XSD2JavaGenerator.run(XSD2JavaGenerator.java:148)
     [java]     at 
org.apache.tuscany.sdo.generate.XSD2JavaGenerator.main(XSD2JavaGenerator.java:97)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [java]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     at 
org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217)
     [java]     at 
org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152)
     [java]     at org.apache.tools.ant.taskdefs.Java.run(Java.java:747)
     [java]     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:201)
     [java]     at org.apache.tools.ant.taskdefs.Java.execute(Java.java:104)
     [java]     at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [java]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     at 
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
     [java]     at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     at 
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
     [java]     at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
     [java]     at 
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
     [java]     at 
org.apache.tools.ant.Project.executeTargets(Project.java:1181)
     [java]     at org.apache.tools.ant.Main.runBuild(Main.java:698)
     [java]     at org.apache.tools.ant.Main.startAnt(Main.java:199)
     [java]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
     [java]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
     [java] Caused by: org.eclipse.emf.codegen.jet.JETException: 
InvocationTargetException
     [java]     at 
org.eclipse.emf.codegen.jet.JETEmitter.generate(JETEmitter.java:396)
     [java]     at 
org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter.generateJava(AbstractGeneratorAdapter.java:937)
     [java]     ... 37 more
     [java] Caused by: java.lang.reflect.InvocationTargetException
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [java]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     at 
org.eclipse.emf.codegen.jet.JETEmitter.generate(JETEmitter.java:388)
     [java]     ... 38 more
     [java] Caused by: java.lang.NullPointerException
     [java]     at 
org.apache.tuscany.sdo.generate.templates.model.SDOFactoryClass.generate(SDOFactoryClass.java:912)
     [java]     ... 43 more


> XSD2JavaGenerator has a problem with associations navigable from both sides
> ---------------------------------------------------------------------------
>
>                 Key: TUSCANY-1725
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1725
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SDO Tools
>    Affects Versions: Java-SDO-1.0
>         Environment: Linux
>            Reporter: Miro Kandic
>             Fix For: Java-SDO-Next
>
>         Attachments: CollectionManagerModel.xsd, sports-compile-errors.log, 
> xmlSchema.xsd
>
>
> XSD2JavaGenerator does not work in the case of any association type 
> (association, composition) that is navigable from both sides.
> I have intentionally, just to test generator, made Customer-SoH association 
> in the next schema navigable from both sides and generated code cannot be 
> compiled.
> Frank, after initial analyses, confirmed that saying "Bidirectional 
> references are broken in Tuscany. They seem
> to have been broken when we switched over to the new (noEMF) codegen
> patterns."
> Next is complete XSD built automatically from the UML model.
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
>     Attention: Generated code! Do not modify by hand!
>     Generated by: XmlSchema.vsl in andromda-xmlschema-cartridge.
>   -->
> <xsd:schema
>     targetNamespace="http://www.cisco.com/odns/soa";
>     xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>     xmlns:sdo="commonj.sdo" xmlns:sdoxml="commonj.sdo/xml"
>     xmlns:impl="http://www.cisco.com/odns/soa";
>     elementFormDefault="qualified">
>     <xsd:import namespace="commonj.sdo/xml" schemaLocation="sdoXML.xsd"/>
>     <xsd:complexType name="Address">
>         <xsd:sequence>
>             <xsd:element name="street" type="xsd:string" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="city" type="xsd:string" minOccurs="1" 
> maxOccurs="1"/>
>         </xsd:sequence>
>         <xsd:attribute name="xmlId" type="xsd:ID"/>
>     </xsd:complexType>
>     <xsd:complexType name="Customer">
>         <xsd:sequence>
>             <xsd:element name="orders" type="xsd:IDREF" 
> sdoxml:propertyType="impl:SoH"
>                 sdoxml:oppositeProperty="customer" minOccurs="0" 
> maxOccurs="unbounded" />
>             <xsd:element name="name" type="xsd:string" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="created" type="xsd:date" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="lastUpdated" type="xsd:dateTime" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="modifiedBy" type="xsd:string" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="id" type="xsd:long" minOccurs="1" 
> maxOccurs="1"/>
>         </xsd:sequence>
>         <xsd:attribute name="xmlId" type="xsd:ID"/>
>     </xsd:complexType>
>     <xsd:complexType name="Part">
>         <xsd:sequence>
>             <xsd:element name="uom" type="xsd:string" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="aggState" type="xsd:string" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="id" type="xsd:long" minOccurs="1" 
> maxOccurs="1"/>
>         </xsd:sequence>
>         <xsd:attribute name="xmlId" type="xsd:ID"/>
>     </xsd:complexType>
>     <xsd:complexType name="Product">
>      <xsd:complexContent>
>       <xsd:extension base="impl:Part">
>         <xsd:sequence>
>             <xsd:element name="description" type="xsd:string" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="modifiedBy" type="xsd:string" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="lastUpdated" type="xsd:dateTime" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="created" type="xsd:date" minOccurs="1" 
> maxOccurs="1"/>
>         </xsd:sequence>
>       </xsd:extension>
>      </xsd:complexContent>
>     </xsd:complexType>
>     <xsd:complexType name="SoH">
>         <xsd:sequence>
>             <xsd:element name="customer" type="xsd:IDREF" 
> sdoxml:propertyType="impl:Customer"
>                 sdoxml:oppositeProperty="orders" minOccurs="1" maxOccurs="1" 
> />
>             <xsd:element name="lines" type="impl:SoL" minOccurs="0" 
> maxOccurs="unbounded" />
>             <xsd:element name="number" type="xsd:string" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="receivedDate" type="xsd:date" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="modifiedBy" type="xsd:string" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="lastUpdated" type="xsd:dateTime" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="created" type="xsd:date" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="id" type="xsd:long" minOccurs="1" 
> maxOccurs="1"/>
>         </xsd:sequence>
>         <xsd:attribute name="xmlId" type="xsd:ID"/>
>     </xsd:complexType>
>     <xsd:complexType name="SoL">
>         <xsd:sequence>
>             <xsd:element name="product" type="xsd:IDREF" 
> sdoxml:propertyType="impl:Product"
>                 sdoxml:oppositeProperty="soLs" minOccurs="1" maxOccurs="1" />
>             <xsd:element name="soLineSch" type="impl:SoLSch" minOccurs="0" 
> maxOccurs="unbounded" />
>             <xsd:element name="quantity" type="xsd:double" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="requestedDate" type="xsd:date" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="modifiedBy" type="xsd:string" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="lastUpdated" type="xsd:dateTime" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="created" type="xsd:date" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="id" type="xsd:long" minOccurs="1" 
> maxOccurs="1"/>
>         </xsd:sequence>
>         <xsd:attribute name="xmlId" type="xsd:ID"/>
>     </xsd:complexType>
>     <xsd:complexType name="SoLSch">
>         <xsd:sequence>
>             <xsd:element name="requestedDate" type="xsd:date" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="quantity" type="xsd:double" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="modifiedBy" type="xsd:string" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="lastUpdated" type="xsd:dateTime" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="created" type="xsd:date" minOccurs="1" 
> maxOccurs="1"/>
>             <xsd:element name="id" type="xsd:long" minOccurs="1" 
> maxOccurs="1"/>
>         </xsd:sequence>
>         <xsd:attribute name="xmlId" type="xsd:ID"/>
>     </xsd:complexType>
>     <xsd:element name="DataGraphRootEl" type="impl:DataGraphRoot"/>
>     <xsd:complexType name="DataGraphRoot">
>         <xsd:sequence>
>             <xsd:element name="customer" type="impl:Customer" minOccurs="0" 
> maxOccurs="unbounded" />
>             <xsd:element name="product" type="impl:Product" minOccurs="0" 
> maxOccurs="unbounded" />
>             <xsd:element name="part" type="impl:Part" minOccurs="0" 
> maxOccurs="unbounded" />
>             <xsd:element name="soH" type="impl:SoH" minOccurs="0" 
> maxOccurs="unbounded" />
>         </xsd:sequence>
>     </xsd:complexType>
> </xsd:schema>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to