Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » NullPointerException while generating
NullPointerException while generating [message #1732645] Wed, 18 May 2016 19:10 Go to next message
Matthias Austruy is currently offline Matthias AustruyFriend
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 #1732667 is a reply to message #1732645] Thu, 19 May 2016 04:39 Go to previous messageGo to next message
Ed Willink is currently offline Ed WillinkFriend
Messages: 7655
Registered: July 2009
Senior Member
Hi

The specific NPE suggests that something bad happened wihile
initializing the GenModel; a referenced file has moved, a project is
closed, a disk has failed, a network is down...

"It's basically lots of NullPointerException" suggests that you have
many errors and you have shown us part of just one. It is very likely
that a much more important error can be found much further down the
first stack trace.

"minor modification in my model (just added an integer in a class)"
shouldn't cause a problem. Have you tried regenerating with no change at
all? Most likely something has changed during the "for years" and you
are only just detecting that change.

Regards

Ed Willink

On 18/05/2016 13:20, Matthias Austruy wrote:
> 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 en tested it on Luna and
> the problem was just the same.)
Re: NullPointerException while generating [message #1732670 is a reply to message #1732645] Thu, 19 May 2016 05:17 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33140
Registered: July 2009
Senior Member
Matthias,

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)


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: NullPointerException while generating [message #1732829 is a reply to message #1732670] Fri, 20 May 2016 07:17 Go to previous message
Matthias Austruy is currently offline Matthias AustruyFriend
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:17
Matthias,

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)

Previous Topic:[papyrus/CDO] error when using profiles structured in package
Next Topic:[xcore] Referring to an enum in xtext that is defined in Xcore
Goto Forum:
  


Current Time: Wed Apr 24 23:09:43 GMT 2024

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

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

Back to the top