APAR status
Closed as program error.
Error description
After migrating to Liberty 19.0.0.12/20.0.0.3, the following exception is logged in the Liberty logs: org.eclipse.persistence.exceptions.DescriptorException Description of the exception: The implementation of the persistence unit [cops] failed. Close all factories for this persistence unit. Internal exception: Exception [EclipseLink-93] (Eclipse Persistence Services - 2.6.8.WAS-v20200108-cc2fb8c): org.eclipse.persistence.exceptions.DescriptorException Description of the exception: The table [XXX] does not exist in this descriptor. at org.eclipse.persistence.exceptions.DescriptorException.tableNotP resent(DescriptorException.java:1642) at org.eclipse.persistence.descriptors.ClassDescriptor.getTable(Cla ssDescriptor.java:2779) at org.eclipse.persistence.descriptors.ClassDescriptor.buildField(C lassDescriptor.java:882) at org.eclipse.persistence.mappings.OneToOneMapping.initializeForei gnKeys(OneToOneMapping.java:1199) at org.eclipse.persistence.mappings.OneToOneMapping.initialize(OneT oOneMapping.java:1145) at org.eclipse.persistence.descriptors.ClassDescriptor.initialize(C lassDescriptor.java:3125) at org.eclipse.persistence.mappings.AggregateObjectMapping.initiali ze(AggregateObjectMapping.java:1426) at org.eclipse.persistence.descriptors.ClassDescriptor.initialize(C lassDescriptor.java:3125) at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.in itializeDescriptors(DatabaseSessionImpl.java:698) at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.in itializeDescriptors(DatabaseSessionImpl.java:657) at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.in itializeDescriptors(DatabaseSessionImpl.java:588) at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.po stConnectDatasource(DatabaseSessionImpl.java:824) at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.lo ginAndDetectDatasource(DatabaseSessionImpl.java:768) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvide r.login(EntityManagerFactoryProvider.java:256) at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.depl oy(EntityManagerSetupImpl.java:759) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegat e.getAbstractSession(EntityManagerFactoryDelegate.java:207) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegat e.createEntityManagerImpl(EntityManagerFactoryDelegate.java:307) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.cr eateEntityManagerImpl(EntityManagerFactoryImpl.java:337) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.cr eateEntityManager(EntityManagerFactoryImpl.java:318) at com.ibm.ws.jpa.container.v21.internal.JPA21Runtime.createEntityM anagerInstance(JPA21Runtime.java:110) at com.ibm.ws.jpa.management.JPAEMPool.getEntityManager(JPAEMPool.j ava:155) at com.ibm.ws.jpa.management.JPATxEntityManager.getEMInvocationInfo (JPATxEntityManager.java:254) at com.ibm.ws.jpa.management.JPATxEntityManager.getEMInvocationInfo (JPATxEntityManager.java:164) at com.ibm.ws.jpa.management.JPAEntityManager.createNamedQuery(JPAE ntityManager.java:586) The following FFDC is also produced: Exception = javax.persistence.PersistenceException Source = com.ibm.ws.cdi.ejb.impl.EJBCDIInterceptorWrapper probeid = 68 Stack Dump = javax.persistence.PersistenceException: XXXX [EclipseLink-28019] (Eclipse Persistence Services - 2.6.8.WAS-v20200108-cc2fb8c): org.eclipse.persistence.exceptions.EntityManagerSetupException Description of the exception: The implementation of the persistence unit [cops] failed. Close all factories for this persistence unit. Internal exception: Exception [EclipseLink-93] (Eclipse Persistence Services - 2.6.8.WAS-v20200108-cc2fb8c): org.eclipse.persistence.exceptions.DescriptorException Description of the exception: The table [XXX] does not exist in this descriptor. at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.crea teDeployFailedPersistenceException(EntityManagerSetupImpl.java:8 97) at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.depl oy(EntityManagerSetupImpl.java:837) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegat e.getAbstractSession(EntityManagerFactoryDelegate.java:207) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegat e.createEntityManagerImpl(EntityManagerFactoryDelegate.java:307) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.cr eateEntityManagerImpl(EntityManagerFactoryImpl.java:337) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.cr eateEntityManager(EntityManagerFactoryImpl.java:318) at com.ibm.ws.jpa.container.v21.internal.JPA21Runtime.createEntityM anagerInstance(JPA21Runtime.java:110) Using a javax.persistence.JoinColumn mapping, within a javax.persistence.Embeddable, if the foreign key 'name' is the same as the referencedColumnName, EclipseLink will throw an exception. This issue was introduced as a regression in PH20729
Local fix
N/A
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM WebSphere Application * * Server - Java Persistence API - JPA 2.1 & * * EclipseLink * **************************************************************** * PROBLEM DESCRIPTION: EclipseLink throws an exception on * * application start, due to a * * regression in PH20729 * **************************************************************** * RECOMMENDATION: * **************************************************************** If an @Embeddable class contains a @JoinColumn mapping where the join column 'name' matches the 'referencedColumnName', EclipseLink will throw the following exception on application start, when the object model is validated: ´´´ Exception Description: The table [BASE_CHILD] is not present in this descriptor. Descriptor: RelationalDescriptor(org.eclipse.persistence.jpa.test.mapping.mo del.BaseParent--> [DatabaseTable(BASE_CHILD)]) ´´´
Problem conclusion
The fix for this APAR changes the EclipseLink implementation and involves an update to the third-party source. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=561664 This fix is currently targeted for WebSphere Application Server 9.0.5.5 and WebSphere Liberty 20.0.0.5. For more information, see 'Recommended Updates for WebSphere Application Server': http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Temporary fix
Comments
APAR Information
APAR number
PH24526
Reported component name
WEBS APP SERV N
Reported component ID
5724H8800
Reported release
900
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2020-04-17
Closed date
2020-05-29
Last modified date
2020-06-30
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
WEBS APP SERV N
Fixed component ID
5724H8800
Applicable component levels
R900 PSY
UP
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
02 November 2021