| 
 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).
 
 |