Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » ATL » Stack size limitation in EMF-specific VM
Stack size limitation in EMF-specific VM [message #989671] Fri, 07 December 2012 09:17
Andreas Brieg is currently offline Andreas BriegFriend
Messages: 48
Registered: November 2012
I'm hitting the stack size limit of the EMF-specific VM in a rather small transformation. There was already a bug filed about the stack size limit. However I think I'm getting into this in some other way however.

The transformation that causes the problem is this one:

-- @atlcompiler atl2010
-- @nsURI ECore=

module convertVertragAttributeToReference;
create output: ECore refining input: ECore;

rule dropVertragAttribute {
	from input: ECore!EAttribute (

rule addVertragReference {
		input: ECore!EClass (
		outputClass: ECore!EClass (
			eStructuralFeatures <- Sequence{vertragReference}
		vertragReference: ECore!EReference (
			-- causes stackoverflow
			eAnnotations <- input.eStructuralFeatures->select(e|e.isVertragAttribute())->collect(e|e.eAnnotations).flatten(),
			eType <- thisModule.vertragClassifier,
			name <- 'vertrag'

helper context ECore!EClass def: requiresVertrag(): Boolean = <> 'Vertrag' and self.eStructuralFeatures -> exists(e | e.

helper context ECore!EStructuralFeature def: isVertragAttribute(): Boolean =

helper context ECore!EAttribute def: isVertragAttribute(): Boolean = = 'vertrId';

helper def: dbadm: ECore!EPackage =
	ECore!EPackage.allInstances() -> select(e | e.nsURI = 'http://dbadm/1.0').first();

helper def: vertragClassifier: ECore!EClassifier =
	thisModule.dbadm.eClassifiers -> select(e | = 'Vertrag').first();

The line below the comment shows the assignment, which causes the stack overflow. If the assignment is removed the transformation runs through.

The reported error is:
org.eclipse.m2m.atl.engine.emfvm.VMException: 100
	at __applyRefiningTrace__#47(convertVertragAttributeToReference.atl)
		local variables: self=convertVertragAttributeToReference : ASMModule
	at main#79(convertVertragAttributeToReference.atl)
		local variables: self=convertVertragAttributeToReference : ASMModule
Java Stack:
org.eclipse.m2m.atl.engine.emfvm.VMException: 100
	at org.eclipse.m2m.atl.engine.emfvm.ASMOperation.exec(
	at org.eclipse.m2m.atl.engine.emfvm.ASMOperation.exec(
	at org.eclipse.m2m.atl.engine.emfvm.launch.EMFVMLauncher.internalLaunch(
	at org.eclipse.m2m.atl.engine.emfvm.launch.EMFVMUILauncher.launch(
	at org.eclipse.m2m.atl.core.service.LauncherService.launch(
	at org.eclipse.m2m.atl.core.ui.launch.AtlLaunchConfigurationDelegate.launchOrDebug(
	at org.eclipse.m2m.atl.core.ui.launch.AtlLaunchConfigurationDelegate.launch(
	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(
	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(
	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(
	at org.eclipse.debug.internal.ui.DebugUIPlugin$
Caused by: java.lang.ArrayIndexOutOfBoundsException: 100
	at org.eclipse.m2m.atl.engine.emfvm.ASMOperation.exec(
	... 12 more

Am I doing something wrong? Should I file this as a bug? Does anybody know a workaround?

Thanks for advice.


I'm using Juno with ATL 3.3.1.
The transformation is applied to an ecore model with about 150 classes and 1900 structural features.

[Updated on: Fri, 07 December 2012 09:19]

Report message to a moderator

Previous Topic:ATL to ATL Refining Mode
Next Topic:[ATL] Containment references cannot span across models
Goto Forum:

Current Time: Wed May 23 05:26:50 GMT 2018

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

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

Back to the top