Jaro, 
 
I've reproduced your error. Seems that MappedSuperclasses from XML are
not being initialized properly. Please enter a bug. In the mean time,
using MappedSuperclasses through annotations only should solve your
problem. 
 
Cheers, 
Guy 
 
On 20/04/2010 4:17 AM, Kuruc, Jaro wrote:
  
  
  Hi 
    
  I was able to strip down the
project to the minimum to demonstrate the problem with annotation
processor. Please notice that if annotations are used, metamodel is
generated with no problems. As long as orm.xml mappings are used,
annotation processor is throwing this exception (different to what I
was posting before): 
    
  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.setEntityMappings(ORMetadata.java:481) 
 at
org.eclipse.persistence.internal.jpa.metadata.ORMetadata$SimpleORMetadata.<init>(ORMetadata.java:608) 
 at
org.eclipse.persistence.internal.jpa.metadata.ORMetadata.mergeSimpleObjects(ORMetadata.java:419) 
 at
org.eclipse.persistence.internal.jpa.metadata.accessors.MetadataAccessor.merge(MetadataAccessor.java:431) 
 at
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.merge(ClassAccessor.java:776) 
 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 
   
  
That surprises me greatly, you sure you dropped it? If the
eclipselink-orm is not found you should not go through the file merging
code. 
   
Is your orm.xml file listed in your persistence.xml?  
   
Cheers, 
Guy 
   
On 19/04/2010 12:01 PM, Kuruc, Jaro wrote:
  
    
    Hi 
      
    I am not using any annotations,
just mappings in META-INF/orm.xml. I also have
META-INF/eclipselink-orm.xml which is currently empty. Dropping it
doesn't solve it. I have also tried to switch from 2.0.1 to 2.1.0-M6,
and it gives me similar NullPointerException: 
      
    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:373) 
 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:504) 
 at
org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappings.initPersistenceUnitClasses(XMLEntityMappings.java:415) 
 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 
     
    
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 
       
      
      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 
       
      
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
   
     
    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).
   
 
 |