Bug 393540 - [generator] Cannot use predefined genmodel for a generated ecore model
Summary: [generator] Cannot use predefined genmodel for a generated ecore model
Status: NEW
Alias: None
Product: TMF
Classification: Modeling
Component: Xtext (show other bugs)
Version: 2.4.0   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-05 06:15 EST by Jan Koehnlein CLA
Modified: 2012-11-05 06:15 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Koehnlein CLA 2012-11-05 06:15:44 EST
This seems to be related to the change in XtextResourceSet, that throws an exception if another reosurce is loaded with the URI of an already loaded one.

Steps to reproduce:
Run the "GenerateAllLanuages.mwe2" workflox in org.eclipe.xtext.tests and watch what happens to EcoreFragmentTestLanguage:

25678 INFO  LanguageConfig     - generating infrastructure for org.eclipse.xtext.generator.ecore.EcoreFragmentTestLanguage with fragments : ImplicitRuntimeFragment, XtextAntlrGeneratorFragment, DebugAntlrGeneratorFragment, ResourceFactoryFragment, GrammarAccessFragment, EcoreGeneratorFragment, ParseTreeConstructorFragment, SerializerFragment
25921 INFO  GenModelHelper     - Registered GenModel 'http://first' from 'platform:/resource/org.eclipse.xtext.tests/src/org/eclipse/xtext/generator/ecore/Genmodel.genmodel'
java.lang.IllegalStateException: A resource with the normalized URI 'platform:/resource/org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/generator/ecore/EcoreFragmentTestLanguage.ecore' was already registered. The resource with the URI 'org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl$1@4c7ef8a6 uri='platform:/resource/org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/generator/ecore/EcoreFragmentTestLanguage.ecore'' is no longer registered with the normalized form.
	at org.eclipse.xtext.resource.XtextResourceSet.registerURI(XtextResourceSet.java:75)
	at org.eclipse.xtext.resource.XtextResourceSet$ResourcesList.inverseAdd(XtextResourceSet.java:95)
	at org.eclipse.xtext.resource.XtextResourceSet$ResourcesList.inverseAdd(XtextResourceSet.java:1)
	at org.eclipse.emf.common.notify.impl.NotifyingListImpl.addUnique(NotifyingListImpl.java:312)
	at org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:301)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.createResource(ResourceSetImpl.java:435)
	at org.eclipse.xtext.generator.ecore.EcoreGeneratorFragment.createResourceForEPackages(EcoreGeneratorFragment.java:138)
	at org.eclipse.xtext.generator.ecore.EcoreGeneratorFragment.generate(EcoreGeneratorFragment.java:217)
	at org.eclipse.xtext.generator.CompositeGeneratorFragment.generate(CompositeGeneratorFragment.java:92)
	at org.eclipse.xtext.generator.CompositeGeneratorFragment.generate(CompositeGeneratorFragment.java:92)
	at org.eclipse.xtext.generator.LanguageConfig.generate(LanguageConfig.java:113)
	at org.eclipse.xtext.generator.Generator.generate(Generator.java:361)
	at org.eclipse.xtext.generator.Generator.invokeInternal(Generator.java:128)
	at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:126)
	at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.invoke(Mwe2Bridge.java:34)
	at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:201)
	at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkflowComponent.invoke(AbstractCompositeWorkflowComponent.java:35)
	at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow.java:19)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:102)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:79)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:71)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:76)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:35)
25973 ERROR CompositeGeneratorFragment - Could not find a GenModel for EPackage 'http://www.eclipse.org/2009/tmf/xtext/EcoreFragmentTestLanguage' from http://www.eclipse.org/2009/tmf/xtext/EcoreFragmentTestLanguage
If the missing GenModel has been generated via EcoreGeneratorFragment make sure to run it first in the workflow.
If you have a *.genmodel-file, make sure to register it via StandaloneSetup.registerGenModelFile(String)
java.lang.RuntimeException: Could not find a GenModel for EPackage 'http://www.eclipse.org/2009/tmf/xtext/EcoreFragmentTestLanguage' from http://www.eclipse.org/2009/tmf/xtext/EcoreFragmentTestLanguage
If the missing GenModel has been generated via EcoreGeneratorFragment make sure to run it first in the workflow.
If you have a *.genmodel-file, make sure to register it via StandaloneSetup.registerGenModelFile(String)
	at org.eclipse.xtext.generator.GenModelAccess.getGenModelResource(GenModelAccess.java:119)
	at org.eclipse.xtext.generator.GenModelAccess.getGenPackage(GenModelAccess.java:85)
	at org.eclipse.xtext.generator.serializer.JavaEMFFile.importedGenTypeName(JavaEMFFile.java:100)
	at org.eclipse.xtext.generator.serializer.JavaEMFFile.importedGenTypeLiteral(JavaEMFFile.java:69)
	at org.eclipse.xtext.generator.serializer.AbstractSemanticSequencer.genMethodCreateSequence(AbstractSemanticSequencer.java:305)
	at org.eclipse.xtext.generator.serializer.AbstractSemanticSequencer.getFileContents(AbstractSemanticSequencer.java:217)
	at org.eclipse.xtext.generator.serializer.SerializerFragment.generate(SerializerFragment.java:92)
	at org.eclipse.xtext.generator.Xtend2GeneratorFragment.generate(Xtend2GeneratorFragment.java:66)
	at org.eclipse.xtext.generator.Xtend2GeneratorFragment.generate(Xtend2GeneratorFragment.java:59)
	at org.eclipse.xtext.generator.CompositeGeneratorFragment.generate(CompositeGeneratorFragment.java:92)
	at org.eclipse.xtext.generator.CompositeGeneratorFragment.generate(CompositeGeneratorFragment.java:92)
	at org.eclipse.xtext.generator.LanguageConfig.generate(LanguageConfig.java:113)
	at org.eclipse.xtext.generator.Generator.generate(Generator.java:361)
	at org.eclipse.xtext.generator.Generator.invokeInternal(Generator.java:128)
	at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:126)
	at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.invoke(Mwe2Bridge.java:34)
	at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:201)
	at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkflowComponent.invoke(AbstractCompositeWorkflowComponent.java:35)
	at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow.java:19)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:102)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:79)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:71)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:76)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:35)