Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 349906 - NPE while using eclipselink in the application
Summary: NPE while using eclipselink in the application
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Eclipselink (show other bugs)
Version: unspecified   Edit
Hardware: All other
: P2 normal (vote)
Target Milestone: ---   Edit
Assignee: Guy Pelletier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 358795 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-06-21 04:08 EDT by Tanuja CLA
Modified: 2022-06-09 10:07 EDT (History)
7 users (show)

See Also:


Attachments
Proposed changes (12.61 KB, patch)
2011-07-06 09:00 EDT, Guy Pelletier CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tanuja CLA 2011-06-21 04:08:10 EDT
Build Identifier: 

>
> Customer is using GlassFish Server Open Source Edition 3.1 (build 43) with
> EclipseLink in their application.  They are getting NullPointerException (NPE) below when deploying their
> application.  NPE only happens if they switch to EclipseLink as the provider,
> no problem if they use Hibernate.
>
> Full NPE:
> ========
>
> [#|2011-04-03T19:28:19.484-0700|SEVERE|glassfish3.1|javax.enterprise.system.co
> re.com.sun.enterprise.v3.server|_ThreadID=117;_ThreadName=Thread-1;|Exception
> while invoking class org.glassfish.persistence.jpa.JPADeployer prepare
> method|#]
>
> [#|2011-04-03T19:28:19.484-0700|SEVERE|glassfish3.1|javax.enterprise.system.co
> re.com.sun.enterprise.v3.server|_ThreadID=117;_ThreadName=Thread-1;|Exception
> while invoking class org.glassfish.javaee.full.deployment.EarDeployer prepare
> method|#]
>
> [#|2011-04-03T19:28:19.484-0700|SEVERE|glassfish3.1|javax.enterprise.system.co
> re.com.sun.enterprise.v3.server|_ThreadID=117;_ThreadName=Thread-1;|Exception
> while preparing the app|#]
>
> [#|2011-04-03T19:28:19.484-0700|SEVERE|glassfish3.1|javax.enterprise.system.co
> re.com.sun.enterprise.v3.server|_ThreadID=117;_ThreadName=Thread-1;|Exception
> [EclipseLink-28018] (Eclipse Persistence Services - 2.2.0.v20110202-r8913):
> org.eclipse.persistence.exceptions.EntityManagerSetupException
> Exception Description: Predeployment of PersistenceUnit [em] failed.
> Internal Exception: java.lang.NullPointerException
> org.glassfish.deployment.common.DeploymentException: Exception
> [EclipseLink-28018] (Eclipse Persistence Services - 2.2.0.v20110202-r8913):
> org.eclipse.persistence.exceptions.EntityManagerSetupException
> Exception Description: Predeployment of PersistenceUnit [em] failed.
> Internal Exception: java.lang.NullPointerException
> at
> org.glassfish.javaee.full.deployment.EarDeployer.prepare(EarDeployer.java:166)
>
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLif
> ecycle.java:870)
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.
> java:410)
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.
> java:240)
> at
> org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:370)
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java
> :360)
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java
> :370)
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java
> :1067)
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.ja
> va:96)
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(Command
> RunnerImpl.java:1247)
> at
> org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:145)
> at
> org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:577)
>
> at
> org.glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:4
> 63)
> at
> org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:395)
> at
> org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:380)
> at
> org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.
> java:213)
> at java.util.TimerThread.mainLoop(Timer.java:512)
> at java.util.TimerThread.run(Timer.java:462)
> Caused by: javax.persistence.PersistenceException: Exception
> [EclipseLink-28018] (Eclipse Persistence Services - 2.2.0.v20110202-r8913):
> org.eclipse.persistence.exceptions.EntityManagerSetupException
> Exception Description: Predeployment of PersistenceUnit [em] failed.
> Internal Exception: java.lang.NullPointerException
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityMa
> nagerSetupImpl.java:1127)
> at
> org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFa
> ctory(PersistenceProvider.java:187)
> at
> org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoad
> er.java:205)
> at
> org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoad
> er.java:119)
> at
> org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:213)
> at
> org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.it
> eratePUDs(JPADeployer.java:486)
> at
> org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:220)
> at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:166)
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLif
> ecycle.java:870)
> at
> org.glassfish.javaee.full.deployment.EarDeployer.prepareBundle(EarDeployer.jav
> a:290)
> at
> org.glassfish.javaee.full.deployment.EarDeployer.access$200(EarDeployer.java:8
> 6)
> at
> org.glassfish.javaee.full.deployment.EarDeployer$1.doBundle(EarDeployer.java:1
> 41)
> at
> org.glassfish.javaee.full.deployment.EarDeployer$1.doBundle(EarDeployer.java:1
> 38)
> at
> org.glassfish.javaee.full.deployment.EarDeployer.doOnBundles(EarDeployer.java:
> 215)
> at
> org.glassfish.javaee.full.deployment.EarDeployer.doOnAllTypedBundles(EarDeploy
> er.java:224)
> at
> org.glassfish.javaee.full.deployment.EarDeployer.doOnAllBundles(EarDeployer.ja
> va:250)
> at
> org.glassfish.javaee.full.deployment.EarDeployer.prepare(EarDeployer.java:138)
>
> ... 17 more
> Caused by: Exception [EclipseLink-28018] (Eclipse Persistence Services -
> 2.2.0.v20110202-r8913):
> org.eclipse.persistence.exceptions.EntityManagerSetupException
> Exception Description: Predeployment of PersistenceUnit [em] failed.
> Internal Exception: java.lang.NullPointerException
> at
> org.eclipse.persistence.exceptions.EntityManagerSetupException.predeployFailed
> (EntityManagerSetupException.java:210)
> ... 34 more
> Caused by: java.lang.NullPointerException
> at
> org.eclipse.persistence.internal.jpa.metadata.MetadataDescriptor.getProject(Me
> tadataDescriptor.java:1076)
> at
> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.
> <init>(ClassAccessor.java:225)
> at
> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.MappedSupercla
> ssAccessor.<init>(MappedSuperclassAccessor.java:204)
> at
> org.eclipse.persistence.internal.jpa.metadata.ORMetadata.reloadMappedSuperclas
> s(ORMetadata.java:550)
> at
> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.
> addPotentialMappedSuperclass(ClassAccessor.java:498)
> at
> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EmbeddableAcce
> ssor.discoverMappedSuperclassesAndInheritanceParents(EmbeddableAccessor.java:1
> 77)
> at
> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EmbeddableAcce
> ssor.preProcess(EmbeddableAccessor.java:266)
> at
> org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processStage1(Me
> tadataProject.java:1513)
> at
> org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMeta
> data(MetadataProcessor.java:484)
> at
> org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.proce
> ssORMetadata(PersistenceUnitProcessor.java:454)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityMa
> nagerSetupImpl.java:1081)
> ... 33 more
> |#]
>
> [#|2011-04-03T19:28:19.578-0700|SEVERE|glassfish3.1|javax.enterprise.system.to
> ols.admin.org.glassfish.deployment.admin|_ThreadID=117;_ThreadName=Thread-1;|E
> xception while preparing the app : Exception [EclipseLink-28018] (Eclipse
> Persistence Services - 2.2.0.v20110202-r8913):
> org.eclipse.persistence.exceptions.EntityManagerSetupException
> Exception Description: Predeployment of PersistenceUnit [em] failed.
> Internal Exception: java.lang.NullPointerException
> javax.persistence.PersistenceException: Exception [EclipseLink-28018]
> (Eclipse Persistence Services - 2.2.0.v20110202-r8913):
> org.eclipse.persistence.exceptions.EntityManagerSetupException
> Exception Description: Predeployment of PersistenceUnit [em] failed.
> Internal Exception: java.lang.NullPointerException
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityMa
> nagerSetupImpl.java:1127)
> at
> org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFa
> ctory(PersistenceProvider.java:187)
> at
> org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoad
> er.java:205)
> at
> org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoad
> er.java:119)
> at
> org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:213)
> at
> org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.it
> eratePUDs(JPADeployer.java:486)
> at
> org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:220)
> at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:166)
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLif
> ecycle.java:870)
> at
> org.glassfish.javaee.full.deployment.EarDeployer.prepareBundle(EarDeployer.jav
> a:290)
> at
> org.glassfish.javaee.full.deployment.EarDeployer.access$200(EarDeployer.java:8
> 6)
> at
> org.glassfish.javaee.full.deployment.EarDeployer$1.doBundle(EarDeployer.java:1
> 41)
> at
> org.glassfish.javaee.full.deployment.EarDeployer$1.doBundle(EarDeployer.java:1
> 38)
> at
> org.glassfish.javaee.full.deployment.EarDeployer.doOnBundles(EarDeployer.java:
> 215)
> at
> org.glassfish.javaee.full.deployment.EarDeployer.doOnAllTypedBundles(EarDeploy
> er.java:224)
> at
> org.glassfish.javaee.full.deployment.EarDeployer.doOnAllBundles(EarDeployer.ja
> va:250)
> at
> org.glassfish.javaee.full.deployment.EarDeployer.prepare(EarDeployer.java:138)
>
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLif
> ecycle.java:870)
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.
> java:410)
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.
> java:240)
> at
> org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:370)
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java
> :360)
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java
> :370)
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java
> :1067)
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.ja
> va:96)
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(Command
> RunnerImpl.java:1247)
> at
> org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:145)
> at
> org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:577)
>
> at
> org.glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:4
> 63)
> at
> org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:395)
> at
> org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:380)
> at
> org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.
> java:213)
> at java.util.TimerThread.mainLoop(Timer.java:512)
> at java.util.TimerThread.run(Timer.java:462)
> Caused by: Exception [EclipseLink-28018] (Eclipse Persistence Services -
> 2.2.0.v20110202-r8913):
> org.eclipse.persistence.exceptions.EntityManagerSetupException
> Exception Description: Predeployment of PersistenceUnit [em] failed.
> Internal Exception: java.lang.NullPointerException
> at
> org.eclipse.persistence.exceptions.EntityManagerSetupException.predeployFailed
> (EntityManagerSetupException.java:210)
> ... 34 more
> Caused by: java.lang.NullPointerException
> at
> org.eclipse.persistence.internal.jpa.metadata.MetadataDescriptor.getProject(Me
> tadataDescriptor.java:1076)
> at
> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.
> <init>(ClassAccessor.java:225)
> at
> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.MappedSupercla
> ssAccessor.<init>(MappedSuperclassAccessor.java:204)
> at
> org.eclipse.persistence.internal.jpa.metadata.ORMetadata.reloadMappedSuperclas
> s(ORMetadata.java:550)
> at
> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.
> addPotentialMappedSuperclass(ClassAccessor.java:498)
> at
> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EmbeddableAcce
> ssor.discoverMappedSuperclassesAndInheritanceParents(EmbeddableAccessor.java:1
> 77)
> at
> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EmbeddableAcce
> ssor.preProcess(EmbeddableAccessor.java:266)
> at
> org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processStage1(Me
> tadataProject.java:1513)
> at
> org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMeta
> data(MetadataProcessor.java:484)
> at
> org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.proce
> ssORMetadata(PersistenceUnitProcessor.java:454)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityMa
> nagerSetupImpl.java:1081)
> ... 33 more
> |#]
>
> Regards,
> -Tanuja


Reproducible: Always

Steps to Reproduce:
1.Since it producible only in PRODUCTION, no testcase is available
2.
3.
Comment 1 Remy Suen CLA 2011-06-21 08:21:08 EDT
Please open EclipseLink bugs with EclipseLink.
Comment 2 Tom Ware CLA 2011-06-23 10:34:12 EDT
From an email conversation about this bug:

The fault (on our end) seems to lie on reloading a MappedSuperclass (from XML)
to an Embeddable class to create our internal metamodel.

If they annotated the mapped superclass (rather than map it in XML), it may get
them by the problem. Alternatively, it would seem that the embeddable class is
only annotated and if it were mapped in XML it could alleviate the problem
(oddly enough).

So may it may be as simple as adding in XML

<embeddable class="blah"/>

For the embeddable classes that inherit from a mapped superclass.
Comment 3 Tom Ware CLA 2011-06-30 15:14:41 EDT
Setting target and priority.  See the following page for the meanings of these fields:

http://wiki.eclipse.org/EclipseLink/Development/Bugs/Guidelines

Community: Please vote for this bug if it is important to you.  Votes are one of the main criteria we use to determine which bugs to fix next.
Comment 4 Guy Pelletier CLA 2011-07-06 09:00:33 EDT
Created attachment 199183 [details]
Proposed changes
Comment 5 Guy Pelletier CLA 2011-07-06 09:39:59 EDT
Changes have been submitted to both the 2.3.1 and trunk streams.

Verified by: Tom Ware

Tests: Metadata processing error. New test model created, with fix in place no NPE occurs.
Comment 6 Guy Pelletier CLA 2011-09-28 10:11:49 EDT
*** Bug 358795 has been marked as a duplicate of this bug. ***
Comment 7 michael.munn CLA 2011-11-02 23:18:30 EDT
Is this included in 2.3.1-M8 ??
Comment 8 Tom Ware CLA 2011-11-03 08:20:46 EDT
This fix should appear in 2.3.1 M8. (It was fixed quite early in our 2.3.1 development and likely appears as early as M2)
Comment 9 Eclipse Webmaster CLA 2022-06-09 10:07:35 EDT
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink