Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » [EEF] StackOverflow while generating code
[EEF] StackOverflow while generating code [message #621953] Mon, 04 January 2010 15:42 Go to next message
Victor Roldan Betancort is currently offline Victor Roldan BetancortFriend
Messages: 524
Registered: July 2009
Senior Member
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 #621954 is a reply to message #621953] Mon, 04 January 2010 16:04 Go to previous messageGo to next message
Victor Roldan Betancort is currently offline Victor Roldan BetancortFriend
Messages: 524
Registered: July 2009
Senior Member
Hi again,

I would like to add that the generator also returns the same exception
with a simple model that I've made for testing purpose (1 EClass with 2
EAttributes, EString and EInt).

Cheers,
Víctor.
Re: [EEF] StackOverflow while generating code [message #621955 is a reply to message #621954] Tue, 05 January 2010 08:02 Go to previous messageGo to next message
Goulwen Le Fur is currently offline Goulwen Le FurFriend
Messages: 125
Registered: July 2009
Senior Member
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.

--
Goulwen Le Fur - goulwen.lefur@obeo.fr

Víctor Roldán Betancort a écrit :
> Hi again,
>
> I would like to add that the generator also returns the same exception
> with a simple model that I've made for testing purpose (1 EClass with 2
> EAttributes, EString and EInt).
>
> Cheers,
> Víctor.
Re: [EEF] StackOverflow while generating code [message #621956 is a reply to message #621955] Tue, 05 January 2010 09:52 Go to previous message
Victor Roldan Betancort is currently offline Victor Roldan BetancortFriend
Messages: 524
Registered: July 2009
Senior Member
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.
>
Previous Topic:EEF Can´t display the property view
Next Topic:[EEF] StackOverflow while generating code
Goto Forum:
  


Current Time: Fri Mar 29 13:51:22 GMT 2024

Powered by FUDForum. Page generated in 0.02742 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top