[EEF] StackOverflow while generating code [message #505710] |
Mon, 04 January 2010 05:56  |
Eclipse User |
|
|
|
Hi all,
I've decided to perform some tests with the EEF framework with the aim
of enriching our UI support for the CDO framework. Lot of interesting
features in this new exciting project, so kudos to all the folks that
make it possible :)
I've been following the instructions provided at:
http://wiki.eclipse.org/EEF_tutorial_:_First_generation
with the following environment:
Eclipse Helios 3.6 M4: I20091210-1301
EMF 2.6.0.v200912121603
Acceleo SDK 0.9.0.v200912150944
EEF 0.8.0.v201001040921-177-7w312112151A32 (fetched from the nightly
builds update site)
So far I've just created the .components and .eefgen models through the
"Initialize EEF models" action. Then, I took a quick look at the models
(no modifications) and generated. I didn't get any error message or
such, and the code wasn't generated. I found this exception in the error
log:
Caused by: java.lang.StackOverflowError
at
org.eclipse.ocl.ecore.impl.VariableExpImpl.getReferredVariab le(VariableExpImpl.java:97)
at
org.eclipse.ocl.util.ToStringVisitor.visitVariableExp(ToStri ngVisitor.java:203)
at
org.eclipse.ocl.util.ToStringVisitor.visitVariableExp(ToStri ngVisitor.java:1)
at
org.eclipse.ocl.ecore.impl.VariableExpImpl.accept(VariableEx pImpl.java:258)
at
org.eclipse.ocl.utilities.AbstractVisitor.safeVisit(Abstract Visitor.java:103)
at
org.eclipse.ocl.utilities.AbstractVisitor.visitPropertyCallE xp(AbstractVisitor.java:161)
at
org.eclipse.ocl.ecore.impl.PropertyCallExpImpl.accept(Proper tyCallExpImpl.java:246)
at
org.eclipse.ocl.ecore.impl.FeatureCallExpImpl.toString(Featu reCallExpImpl.java:218)
at
org.eclipse.acceleo.model.mtl.impl.spec.QueryInvocationSpec. toString(QueryInvocationSpec.java:65)
at
org.eclipse.acceleo.model.mtl.impl.spec.QueryInvocationSpec. accept(QueryInvocationSpec.java:47)
at
org.eclipse.ocl.utilities.AbstractVisitor.safeVisit(Abstract Visitor.java:103)
at
org.eclipse.ocl.utilities.AbstractVisitor.visitOperationCall Exp(AbstractVisitor.java:122)
at
org.eclipse.ocl.ecore.impl.OperationCallExpImpl.accept(Opera tionCallExpImpl.java:399)
at
org.eclipse.ocl.utilities.AbstractVisitor.safeVisit(Abstract Visitor.java:103)
at
org.eclipse.ocl.utilities.AbstractVisitor.visitOperationCall Exp(AbstractVisitor.java:112)
at
org.eclipse.ocl.ecore.impl.OperationCallExpImpl.accept(Opera tionCallExpImpl.java:399)
at
org.eclipse.ocl.utilities.AbstractVisitor.safeVisit(Abstract Visitor.java:103)
at
org.eclipse.ocl.utilities.AbstractVisitor.visitOperationCall Exp(AbstractVisitor.java:112)
at
org.eclipse.ocl.ecore.impl.OperationCallExpImpl.accept(Opera tionCallExpImpl.java:399)
at
org.eclipse.ocl.ecore.impl.FeatureCallExpImpl.toString(Featu reCallExpImpl.java:218)
at
org.eclipse.acceleo.model.mtl.impl.spec.TemplateSpec.toStrin g(TemplateSpec.java:56)
at
org.eclipse.acceleo.model.mtl.impl.spec.TemplateSpec.toStrin g(TemplateSpec.java:64)
at
org.eclipse.acceleo.model.mtl.impl.spec.TemplateSpec.toStrin g(TemplateSpec.java:64)
at
org.eclipse.acceleo.model.mtl.impl.spec.TemplateSpec.toStrin g(TemplateSpec.java:64)
at
org.eclipse.acceleo.model.mtl.impl.spec.TemplateSpec.toStrin g(TemplateSpec.java:64)
at
org.eclipse.acceleo.model.mtl.impl.spec.TemplateSpec.toStrin g(TemplateSpec.java:64)
at
org.eclipse.acceleo.model.mtl.impl.spec.TemplateSpec.toStrin g(TemplateSpec.java:64)
....
a warning:
org.eclipse.acceleo.engine.AcceleoEvaluationException: Undefined result
for expression pee.navigation.oclIsUndefined().not() at position 2.419
in Module common for query query Public hasModelNavigation(pee :
PropertiesEditionElement) : Boolean. Last recorded value of self was
Address.
and also 10 OCLExpression evaluation exceptions:
java.lang.IllegalArgumentException
at
org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.navigatePro perty(EcoreEvaluationEnvironment.java:178)
at
org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.navigatePro perty(EcoreEvaluationEnvironment.java:1)
at
org.eclipse.ocl.EvaluationVisitorImpl.visitPropertyCallExp(E valuationVisitorImpl.java:1925)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitPropertyCallExp(AcceleoEvaluationVisitor.ja va:954)
at
org.eclipse.ocl.ecore.impl.PropertyCallExpImpl.accept(Proper tyCallExpImpl.java:246)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor$ParameterInitExpression.accept(AcceleoEvaluation Visitor.java:1430)
at
org.eclipse.ocl.EvaluationVisitorImpl.visitVariable(Evaluati onVisitorImpl.java:1976)
at
org.eclipse.ocl.EvaluationVisitorDecorator.visitVariable(Eva luationVisitorDecorator.java:340)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitAcceleoQueryInvocation(AcceleoEvaluationVis itor.java:654)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.switchExpression(AcceleoEvaluationVisitor.java:1 368)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitExpression(AcceleoEvaluationVisitor.java:87 2)
at
org.eclipse.acceleo.model.mtl.impl.spec.QueryInvocationSpec. accept(QueryInvocationSpec.java:45)
at
org.eclipse.ocl.EvaluationVisitorImpl.visitOperationCallExp( EvaluationVisitorImpl.java:161)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitOperationCallExp(AcceleoEvaluationVisitor.j ava:943)
at
org.eclipse.ocl.ecore.impl.OperationCallExpImpl.accept(Opera tionCallExpImpl.java:399)
at
org.eclipse.ocl.EvaluationVisitorImpl.visitOperationCallExp( EvaluationVisitorImpl.java:161)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitOperationCallExp(AcceleoEvaluationVisitor.j ava:943)
at
org.eclipse.ocl.ecore.impl.OperationCallExpImpl.accept(Opera tionCallExpImpl.java:399)
at
org.eclipse.ocl.AbstractEvaluationVisitor.visitExpression(Ab stractEvaluationVisitor.java:247)
at
org.eclipse.ocl.EvaluationVisitorDecorator.visitExpression(E valuationVisitorDecorator.java:156)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.switchExpression(AcceleoEvaluationVisitor.java:1 376)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitExpression(AcceleoEvaluationVisitor.java:87 2)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.evaluateGuards(AcceleoEvaluationVisitor.java:110 4)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.prepareInvocation(AcceleoEvaluationVisitor.java: 1243)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitAcceleoTemplateInvocation(AcceleoEvaluation Visitor.java:787)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.switchExpression(AcceleoEvaluationVisitor.java:1 366)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitExpression(AcceleoEvaluationVisitor.java:87 2)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitAcceleoForBlock(AcceleoEvaluationVisitor.ja va:416)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.switchExpression(AcceleoEvaluationVisitor.java:1 360)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitExpression(AcceleoEvaluationVisitor.java:87 2)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitAcceleoBlock(AcceleoEvaluationVisitor.java: 238)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitAcceleoIfBlock(AcceleoEvaluationVisitor.jav a:497)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.switchExpression(AcceleoEvaluationVisitor.java:1 357)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitExpression(AcceleoEvaluationVisitor.java:87 2)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitAcceleoFileBlock(AcceleoEvaluationVisitor.j ava:305)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.switchExpression(AcceleoEvaluationVisitor.java:1 363)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitExpression(AcceleoEvaluationVisitor.java:87 2)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitAcceleoForBlock(AcceleoEvaluationVisitor.ja va:416)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.switchExpression(AcceleoEvaluationVisitor.java:1 360)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitExpression(AcceleoEvaluationVisitor.java:87 2)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitAcceleoIfBlock(AcceleoEvaluationVisitor.jav a:465)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.switchExpression(AcceleoEvaluationVisitor.java:1 357)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitExpression(AcceleoEvaluationVisitor.java:87 2)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitAcceleoForBlock(AcceleoEvaluationVisitor.ja va:416)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.switchExpression(AcceleoEvaluationVisitor.java:1 360)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitExpression(AcceleoEvaluationVisitor.java:87 2)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitAcceleoTemplate(AcceleoEvaluationVisitor.ja va:770)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.switchExpression(AcceleoEvaluationVisitor.java:1 355)
at
org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvalua tionVisitor.visitExpression(AcceleoEvaluationVisitor.java:87 2)
at
org.eclipse.ocl.internal.evaluation.QueryImpl.evaluate(Query Impl.java:152)
at org.eclipse.ocl.ecore.QueryImpl.evaluate(QueryImpl.java:62)
at
org.eclipse.acceleo.engine.generation.AcceleoEngine.doEvalua te(AcceleoEngine.java:293)
at
org.eclipse.acceleo.engine.generation.AcceleoEngine.evaluate (AcceleoEngine.java:136)
at
org.eclipse.acceleo.engine.service.AcceleoService.doGenerate Template(AcceleoService.java:593)
at
org.eclipse.acceleo.engine.service.AcceleoService.doGenerate (AcceleoService.java:429)
at
org.eclipse.emf.eef.codegen.components.SubPropertiesEditionC omponent.doGenerate(SubPropertiesEditionComponent.java:285)
at
org.eclipse.emf.eef.codegen.ui.generators.common.GenerateAll .doGenerate(GenerateAll.java:122)
at
org.eclipse.emf.eef.codegen.ui.generators.actions.AbstractGe nerateEEFAction$1.run(AbstractGenerateEEFAction.java:102)
at
org.eclipse.jface.operation.ModalContext$ModalContextThread. run(ModalContext.java:121)
The model I'm using is org.eclipse.emf.cdo.tests.model1 and can be found
at
dev.eclipse.org:/cvsroot/modeling/org.eclipse.emf/org.eclips e.emf.cdo/tests/org.eclipse.emf.cdo.tests.model1
Hope the information provided is enough. Don't hesitate asking for
further information / tests :)
Cheers,
Víctor.
|
|
|
|
|
|
|
|
Re: [EEF] StackOverflow while generating code [message #621957 is a reply to message #505828] |
Tue, 05 January 2010 05:11  |
Eclipse User |
|
|
|
Yes you can, I hope it's the last time we encounter this problem ;)
--
Goulwen
Víctor Roldán Betancort a écrit :
> Hi Goulwen,
>
> thanks for the assistance. Shall I open a bug to keep track of it?
>
> Cheers,
> Víctor.
>
> Goulwen Le Fur escribió:
>> Hi Victor,
>>
>> First thanks for the kudos ;) It's not the first time we encounter
>> this problem, We'll see this problem with Acceleo Team today.
>>
|
|
|
|
Powered by
FUDForum. Page generated in 0.04730 seconds