Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Metamodel generation in Eclipse

Error appears to stem from the fact that you have multiple xml mapping files. Do you have entities or classes defined across multiple files?

Cheers,
Guy

On 19/04/2010 11:26 AM, Kuruc, Jaro wrote:
Hi
 
I've got other problem now. I am getting NullPointerException from CanonicalModelProcessor (see below). Is there a way to debug the annotation processor to see what might causing it?
 
java.lang.RuntimeException: java.lang.NullPointerException
 at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:366)
 at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:139)
 at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:121)
 at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:159)
 at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:134)
 at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:809)
 at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:428)
 at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:364)
 at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:178)
 at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:301)
 at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:60)
 at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:254)
 at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:173)
 at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:627)
 at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
 at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:170)
 at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201)
 at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:253)
 at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
 at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:256)
 at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:309)
 at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:341)
 at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:140)
 at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238)
 at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: java.lang.NullPointerException
 at org.eclipse.persistence.internal.jpa.metadata.ORMetadata.mergeORObjectLists(ORMetadata.java:328)
 at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.XMLAttributes.merge(XMLAttributes.java:252)
 at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.merge(ClassAccessor.java:796)
 at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.MappedSuperclassAccessor.merge(MappedSuperclassAccessor.java:394)
 at org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappings.initPersistenceUnitClasses(XMLEntityMappings.java:522)
 at org.eclipse.persistence.internal.jpa.modelgen.objects.PersistenceUnit.initXMLEntityMappings(PersistenceUnit.java:392)
 at org.eclipse.persistence.internal.jpa.modelgen.objects.PersistenceUnit.<init>(PersistenceUnit.java:85)
 at org.eclipse.persistence.internal.jpa.modelgen.objects.PersistenceUnitReader.initPersistenceUnits(PersistenceUnitReader.java:168)
 at org.eclipse.persistence.internal.jpa.modelgen.objects.PersistenceUnitReader.<init>(PersistenceUnitReader.java:63)
 at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:329)
 ... 24 more
Regards
 
Jaro


From: eclipselink-users-bounces@xxxxxxxxxxx [mailto:eclipselink-users-bounces@xxxxxxxxxxx] On Behalf Of Kuruc, Jaro
Sent: 19 April 2010 12:10
To: guy.pelletier@xxxxxxxxxx; EclipseLink User Discussions
Subject: RE: [eclipselink-users] Metamodel generation in Eclipse

Guy
 
Thanks for your answer. This is little but unfortunate, as it prevents us from having a proper modular desing where POJO domain objects and DAO interfaces are be defined in one OSGi bundle, and another OSGi bundle with DAO implementations and mapping files using specific ORM framework (EclipseLink in our case).
 
However, I have found a workaround which is based on having linked folder in Eclipse linking source folder from Project A to Project B, so when Project B is built, classes from Project A are built too and metamodel is generated for them. Classes from a linked folder are built into separate output dir, so they are not mixed with classes defined in source folder of Project B.
 
I can post a complete Eclipse project config if anyone is interested.
 
Regards
 
Jaro


From: eclipselink-users-bounces@xxxxxxxxxxx [mailto:eclipselink-users-bounces@xxxxxxxxxxx] On Behalf Of Guy Pelletier
Sent: 15 April 2010 18:19
To: EclipseLink User Discussions
Subject: Re: [eclipselink-users] Metamodel generation in Eclipse

I can't think of a good way to do this off hand. The model gen hooks into the compiler using APT. Therefore, EntityA would never be a round element when compiling ProjectB.

You may want to open a bug to have it investigated further.

In the mean time, you'd have to turn on the model gen for Project A with the same persistence.xml.

Cheers,
Guy

On 15/04/2010 12:41 PM, Kuruc, Jaro wrote:
Hi
 
I am testing out the JPA2 Metamodel generation in Eclipse and it looks like that EclipseLink's Modelgen Processor is only supporting metamodel generation for entities defined in the same Eclipse project in which persistence.xml is defined.
 
Here's my setup
 
Project A:
- defines entity class EntityA
 
Project B:
- depends on Project A, hence having EntityA on classpath
- defines entity class EntityB
- defines persistence.xml
- annotation processor is switched on
 
The result is that EntityB_ is generated, but not EntityA_. I have tried both annotation based mappings and mappings in orm.xml, but the result is the same. Is there a way to tell EclipseLink Annotation Processor to generate metadata for all classes on classpath? Maybe even restricting it by specifying package to scan? Thanks.
 
Regards

Jaro Kuruc
Java/SQL Developer

Commerzbank AG
Corporates & Markets
Market Risk

Office address: 30 Gresham Street, London EC2V 7PG, United Kingdom

Phone +44 (0)20 7475 8258

jaro.kuruc@xxxxxxxxxxxxxxx

http://www.commerzbank.com

Commerzbank Aktiengesellschaft, Frankfurt am Main
Handelsregister/Commercial Register: Amtsgericht Frankfurt am Main, HRB 32000
Vorsitzender des Aufsichtsrates/Chairman of the Supervisory Board: Klaus-Peter Müller
Vorstand/Board of Managing Directors: Martin Blessing (Vorsitzender/Chairman), Frank Annuscheit, Markus Beumer, Achim Kassow, Jochen Klösges, Michael Reuther, Stefan Schmittmann, Ulrich Sieber, Eric Strutz

 
This e-mail is confidential and is intended only for the person to whom it is 
addressed.  It may be privileged and should not be read, copied or used by
anyone other than the intended recipient.  If you are not that person, you are
not permitted to make use of the information and you are requested to notify
the sender immediately that you have received it and then destroy the copy in
your possession without disclosing its contents to any person.

Commerzbank AG may monitor outgoing and incoming e-mails.  By replying to this
e-mail you consent to such monitoring.  We believe, but do not warrant, that 
this e-mail and any attachments are virus free, but you must take full 
responsibility for virus checking.

This e-mail was sent either by Commerzbank AG, London Branch, or by Commerzbank
Corporates & Markets, a division of Commerzbank AG.  Commerzbank AG is a 
company incorporated in the Federal Republic of Germany and registered in 
England (registered number FC008139, place of business 30 Gresham Street, 
London EC2V 7PG) and is authorised by Bundesanstalt fuer 
Finanzdienstleistungsaufsicht (BaFin) and authorised and subject to limited 
regulation by the Financial Services Authority (FSA).
  

_______________________________________________ eclipselink-users mailing list eclipselink-users@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/eclipselink-users
This e-mail is confidential and is intended only for the person to whom it is 
addressed.  It may be privileged and should not be read, copied or used by
anyone other than the intended recipient.  If you are not that person, you are
not permitted to make use of the information and you are requested to notify
the sender immediately that you have received it and then destroy the copy in
your possession without disclosing its contents to any person.

Commerzbank AG may monitor outgoing and incoming e-mails.  By replying to this
e-mail you consent to such monitoring.  We believe, but do not warrant, that 
this e-mail and any attachments are virus free, but you must take full 
responsibility for virus checking.

This e-mail was sent either by Commerzbank AG, London Branch, or by Commerzbank
Corporates & Markets, a division of Commerzbank AG.  Commerzbank AG is a 
company incorporated in the Federal Republic of Germany and registered in 
England (registered number FC008139, place of business 30 Gresham Street, 
London EC2V 7PG) and is authorised by Bundesanstalt fuer 
Finanzdienstleistungsaufsicht (BaFin) and authorised and subject to limited 
regulation by the Financial Services Authority (FSA).
  
This e-mail is confidential and is intended only for the person to whom it is 
addressed.  It may be privileged and should not be read, copied or used by
anyone other than the intended recipient.  If you are not that person, you are
not permitted to make use of the information and you are requested to notify
the sender immediately that you have received it and then destroy the copy in
your possession without disclosing its contents to any person.

Commerzbank AG may monitor outgoing and incoming e-mails.  By replying to this
e-mail you consent to such monitoring.  We believe, but do not warrant, that 
this e-mail and any attachments are virus free, but you must take full 
responsibility for virus checking.

This e-mail was sent either by Commerzbank AG, London Branch, or by Commerzbank
Corporates & Markets, a division of Commerzbank AG.  Commerzbank AG is a 
company incorporated in the Federal Republic of Germany and registered in 
England (registered number FC008139, place of business 30 Gresham Street, 
London EC2V 7PG) and is authorised by Bundesanstalt fuer 
Finanzdienstleistungsaufsicht (BaFin) and authorised and subject to limited 
regulation by the Financial Services Authority (FSA).
  

_______________________________________________ eclipselink-users mailing list eclipselink-users@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/eclipselink-users

Back to the top