|Errors running builder 'Acceleo Builder' [message #1801932]
||Tue, 29 January 2019 15:41
| Wilbert Alberts
Registered: June 2010
Since the eclipse 2018-9 release, I'm having problems getting my Acceleo projects to work. To be very brief:
- I create a metamodel
- I create an acceleo project
- I create a (main) template
When saving that template, the Acceleo builder kicks in and it reports the following error:
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.UnresolvedReferenceException: Unresolved reference '/0/generateDeliverable'. (platform:/resource/OotiFinalProject.generator.dependencies/bin/OotiFinalProject/generator/dependencies/main/main.emtl, 20, 87)
(deleted a lot of stuff from the stack trace)
Caused by: org.eclipse.emf.ecore.xmi.UnresolvedReferenceException: Unresolved reference '/0/generateDeliverable'. (platform:/resource/OotiFinalProject.generator.dependencies/bin/OotiFinalProject/generator/dependencies/main/main.emtl, 20, 87)
I attached the relevant projects in my workspace. I ran them using the 2019-3 (pre)release of eclipse. Just open the OotiFinalProject.generator.dependencies/src/.../main.mtl, change it and save it. Then the Acceleo builder will complain.
Any tips/help would be appreciated.
|Re: Errors running builder 'Acceleo Builder' [message #1801978 is a reply to message #1801932]
||Wed, 30 January 2019 09:10
| Ed Willink
Registered: July 2009
If you use a pre-release 2019-03 you have volunteered to become part of the Eclipse testing community. Thank you. You must expect that the many teething problems of new Java versions will bite.
(As a long time Eclipse user, you might recognize that you are amongst the most experienced active Acceleo users and so it is now time for you to step up to help the Acceleo community.)
Don't use Java 9/10/11 until you have demonstrated that 2019-03 with Java 8 works for you. Too many extra excitements.
Option 1: The debugger is your friend.
I find that a breakpoint in EcoreUtil.resolve(EObject proxy, ResourceSet resourceSet) at "resolvedObject = resourceSet.getEObject(proxyURI, false);" provides an opportunity to discover how you got to the problem, and if necessary an opportunity to step forwards to retry the resolution failure.
Be generous on what exceptions you break on, because there may be a much earlier exception that causes a plugin initialization to fail.
Option 2: Identify the breaking commit.
It is very unlikely that the problem is in the platform, too far away, or Acceleo, stable, unlikely that it is the Classic OCL, pretty stable, so that leaves EMF that has had some useful improvements, or overall compatibility, in particular Java changes. And never to be forgotten is 'idiot user'; the reported problem is actually due to something completely different, wrong directory, wrong path, wrong installation, wrong computer, additional development tweaks, .... or just a need for a really determined restart/clean/re-build. Acceleo is particularly hard to rebuild after an environment change; delete everything you possibly can to force a build. Once you are sure it is not idiot user, replace the installed EMF/OCL/Acceleo versions on 2019-03M1 to find out which one changes something. Remember to do a really thorough restart/clean/rebuild after each experiment otherwise you chase a not-rebuilt red herring. Once you know which project, you can replace that project by its GIT and find the GIT commit that causes the change.
Powered by FUDForum
. Page generated in 0.02004 seconds