NullPointerException while generating [message #1732645] |
Wed, 18 May 2016 19:10 |
Matthias Austruy Messages: 2 Registered: May 2016 |
Junior Member |
|
|
Hello everyone,
I have been using EMF in my work project for years and everything worked perfectly.
Yesterday I made a minor modification in my model (just added an integer in a class) and when I tried to generate my model code again, eclipse threw an exception :
java.lang.NullPointerException
at org.eclipse.emf.codegen.ecore.genmodel.impl.GenModelImpl.setLineDelimiter(GenModelImpl.java:2380)
at org.eclipse.emf.codegen.ecore.genmodel.impl.GenModelImpl.setLineDelimiter(GenModelImpl.java:2380)
at org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter.setLineDelimiter(GenBaseGeneratorAdapter.java:331)
at org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter.generateProperties(AbstractGeneratorAdapter.java:1769)
at org.eclipse.emf.codegen.ecore.genmodel.generator.GenModelGeneratorAdapter.generateModelPluginProperties(GenModelGeneratorAdapter.java:257)
at org.eclipse.emf.codegen.ecore.genmodel.generator.GenModelGeneratorAdapter.generateModel(GenModelGeneratorAdapter.java:153)
at org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter.doGenerate(GenBaseGeneratorAdapter.java:215)
at org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter.generate(AbstractGeneratorAdapter.java:317)
It's basically lots of NullPointerException, but I don't really understand where it comes from since that error appeared without apparent reason.
Any idea about that ?
(I'm working on the latest Eclipse Mars.2 but I tested it on Luna and the problem was just the same.)
[Updated on: Wed, 18 May 2016 19:30] Report message to a moderator
|
|
|
|
|
Re: NullPointerException while generating [message #1732829 is a reply to message #1732670] |
Fri, 20 May 2016 07:17 |
Matthias Austruy Messages: 2 Registered: May 2016 |
Junior Member |
|
|
Hi Ed and ... Ed !
First, thanks a lot for your help, it did help me a lot ! And I could fix my problem !
Indeed, it was a GenModel problem, I had to reload on on my referenced GenModel and it now works like a charm ! It took me time to debug that because of the complexity of my model (a 3 yeared-project with industrial purposes and a team working on it.)
Thanks again for you help and your fast answers. Regards,
Matthias.
Ed Merks wrote on Thu, 19 May 2016 05:17Matthias,
Given it's this method:
public void setLineDelimiter(String lineDelimiter)
{
// Avoid cycles
//
if (this.lineDelimiter != lineDelimiter)
{
this.lineDelimiter = lineDelimiter;
if (importManager != null)
{
importManager.setLineDelimiter(lineDelimiter);
}
// We also need to set it on any GenModels holding any used or
static packages that may be refered to.
//
for (GenPackage genPackage : getUsedGenPackages())
{
genPackage.getGenModel().setLineDelimiter(lineDelimiter);
}
for (GenPackage genPackage : getStaticGenPackages())
{
genPackage.getGenModel().setLineDelimiter(lineDelimiter);
}
// There was previously code intended to set it on the cached
GenModels holding the special Ecore and XML packages,
// but it erroneously set the import manager. So, it seems that
was not necessary.
}
}
The only place I can see that would throw a null pointer exception in
this method would be one of the getGenModel() calls returning null.
Most likely some usedGenPackage is failing to resolve. Perhaps that's
exactly what you did, i.e., add a reference to another Ecore model for
which you've not associated the used GenPackage. I assume you're able to
open this *.genmodel with the "EMF Generator" editor? Does Generator
-> Reload... work in this scenario? That should allow you to repair a
broken reference to another GenModel.
On 18.05.2016 14:20, Matthias Austruy wrote:
>
> java.lang.NullPointerException
> at
> org.eclipse.emf.codegen.ecore.genmodel.impl.GenModelImpl.setLineDelimiter(GenModelImpl.java:2380)
> at
> org.eclipse.emf.codegen.ecore.genmodel.impl.GenModelImpl.setLineDelimiter(GenModelImpl.java:2380)
> at
> org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter.setLineDelimiter(GenBaseGeneratorAdapter.java:331)
> at
> org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter.generateProperties(AbstractGeneratorAdapter.java:1769)
> at
> org.eclipse.emf.codegen.ecore.genmodel.generator.GenModelGeneratorAdapter.generateModelPluginProperties(GenModelGeneratorAdapter.java:257)
> at
> org.eclipse.emf.codegen.ecore.genmodel.generator.GenModelGeneratorAdapter.generateModel(GenModelGeneratorAdapter.java:153)
> at
> org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter.doGenerate(GenBaseGeneratorAdapter.java:215)
> at
> org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter.generate(AbstractGeneratorAdapter.java:317)
|
|
|
Powered by
FUDForum. Page generated in 0.06726 seconds