[ATL] Transformation ends without output [message #1599302] |
Tue, 03 February 2015 09:31  |
Eclipse User |
|
|
|
Hi members,
I've been using ATL quite successfully for months in production, but now I've run into a strange problem:
When executing the transformation via a launch config, it runs apparently smoothly for about half an hour, prints a lot of promising debug output, and then just stops without an output file. No error message is printed.
When executing it programatically via ATLPlugin, there is an exception after a few minutes ('parameters ' is an attribute of the output model):
org.eclipse.m2m.atl.engine.emfvm.VMException: Unable to access parameters on OclUndefined
I know the meaning of that message, but I cannot trace its origin as there are no links into the ATL code, as if it were executed via a launch config.
The input file is about 4 MB large, which is only medium-sized in my project's context. I'm using EMFVM of ATL 3.6, and I cannot easily switch to EMFTVM because of its dependencies.
Can you give me a hint why the two ways of executing the transformation behave so differently? I appreciate any input.
|
|
|
Re: [ATL] Transformation ends without output [message #1599462 is a reply to message #1599302] |
Tue, 03 February 2015 11:57   |
Eclipse User |
|
|
|
Gunnar Arndt wrote on Tue, 03 February 2015 15:31Hi members,
I've been using ATL quite successfully for months in production, but now I've run into a strange problem:
When executing the transformation via a launch config, it runs apparently smoothly for about half an hour, prints a lot of promising debug output, and then just stops without an output file. No error message is printed.
When executing it programatically via ATLPlugin, there is an exception after a few minutes ('parameters ' is an attribute of the output model):
org.eclipse.m2m.atl.engine.emfvm.VMException: Unable to access parameters on OclUndefined
I know the meaning of that message, but I cannot trace its origin as there are no links into the ATL code, as if it were executed via a launch config.
The input file is about 4 MB large, which is only medium-sized in my project's context. I'm using EMFVM of ATL 3.6, and I cannot easily switch to EMFTVM because of its dependencies.
Can you give me a hint why the two ways of executing the transformation behave so differently? I appreciate any input.
With an ATLPlugin, behaviour tends to differ from the GUI launcher wherever the input parameters/environment of the ATL VM differ, e.g. the way you load your (meta-)models. It's very hard to guarantee the same behaviour.
Half an hour is very bad performance for a 4 MB model. This can likely be optimised to < 10 seconds. Try the ATL profiler to find any bottlenecks.
Finding the root cause of your problem requires a full setup: ATL source code, input (meta-)models and launch configs.
Out of curiosity: which EMFTVM dependencies are problematic?
|
|
|
Re: [ATL] Transformation ends without output [message #1608445 is a reply to message #1599302] |
Mon, 09 February 2015 09:21   |
Eclipse User |
|
|
|
Dennis, thanks for your reply.
The actual problem was that an object transformed by a unique lazy rule called the transformation of another object, which referred back to the first one before its output was complete. That could be solved by splitting the rule in two, i.e. by creating a separate rule for a contained output object.
About EMFTVM's dependencies : I don't have time to test that right now, but from the last time I did, I remember that EMFTVM required org.objectweb.asm, which was not available as an OSGi plug-in, so I had to create one manually. However, I got it to work (and I probably know better ways to do that now).
You suggest to use the ATL profiler - it is installed in my Eclipse, but I have not found a way to actually use it. ATL 3.1 release note suggest it can be activated in the VM selection, but there is no way to do that in ATL 3.5.
Can you give me a hint where to search?
[Updated on: Mon, 09 February 2015 09:39] by Moderator
|
|
|
|
|
|
Re: [ATL] Transformation ends without output [message #1619448 is a reply to message #1599302] |
Mon, 16 February 2015 10:37  |
Eclipse User |
|
|
|
That's simple: I started the plugins manually because the profiler was not offered in the UI - but that didn't change anything. Normally, it looks like this:
osgi> ss atl.profiler
"Framework is launched."
id State Bundle
824 STARTING org.eclipse.m2m.atl.profiler.core_3.6.0.v201412161312
825 ACTIVE org.eclipse.m2m.atl.profiler.emfvm_3.6.0.v201412161312
826 ACTIVE org.eclipse.m2m.atl.profiler.exportmodel_3.6.0.v201412161312
827 ACTIVE org.eclipse.m2m.atl.profiler.exportmodel.editor_3.6.0.v201412161312
828 STARTING org.eclipse.m2m.atl.profiler.model_3.6.0.v201412161312
829 STARTING org.eclipse.m2m.atl.profiler.ui_3.6.0.v201412161312
830 ACTIVE org.eclipse.m2m.atl.profiler.vm_3.6.0.v201412161312
[Updated on: Mon, 16 February 2015 10:41] by Moderator
|
|
|
Powered by
FUDForum. Page generated in 0.06556 seconds