Community
Participate
Working Groups
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.
Please open EclipseLink bugs with EclipseLink.
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.
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.
Created attachment 199183 [details] Proposed changes
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.
*** Bug 358795 has been marked as a duplicate of this bug. ***
Is this included in 2.3.1-M8 ??
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)
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink