Wildfly 22 - Hibernate-Core 5.4.32 - Unable to build PersistenceContext NullPointerException while checking for existing foreign key - AbstractSchemaMigrator.java - equivalentForeignKeyExistsInDatabase:477

Description

Wildfly 22 - Hibernate-Core 5.4.32 - Unable to build PersistenceContext due to NullPointerException while checking for existing foreign key - blocks wildfly ear deployment.

AbstractSchemaMigrator.java - equivalentForeignKeyExistsInDatabase:477

m.getReferencingColumnMetadata() returns null, and it throws nullpointerexception which is unhandled and it blocking the wildfly deployment

Need to add null check and handle NullpointerException.

Trace:

2021-08-16 10:08:24,179 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool – 254) MSC000001: Failed to start service jboss.persistenceunit."cems.ear/inventoryManager.jar#InventoryPersistenceUnit": org.jboss.msc.service.StartException in service jboss.persistenceunit."cems.ear/inventoryManager.jar#InventoryPersistenceUnit": javax.persistence.PersistenceException: [PersistenceUnit: InventoryPersistenceUnit] Unable to build Hibernate SessionFactory
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:198) [wildfly-jpa-22.0.0.Final.jar:22.0.0.Final]
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:128) [wildfly-jpa-22.0.0.Final.jar:22.0.0.Final]
at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.8.0_292]
at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:664) [wildfly-elytron-security-manager-1.14.1.Final.jar:1.14.1.Final]
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:213) [wildfly-jpa-22.0.0.Final.jar:22.0.0.Final]
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_292]
at org.jboss.threads.JBossThread.run(JBossThread.java:513)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: InventoryPersistenceUnit] Unable to build Hibernate SessionFactory
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1327) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1253) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
at org.jboss.as.jpa.hibernate5.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:44)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:170) [wildfly-jpa-22.0.0.Final.jar:22.0.0.Final]
... 10 more
Caused by: java.lang.NullPointerException
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.lambda$checkForExistingForeignKey$0(AbstractSchemaMigrator.java:467) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90) [rt.jar:1.8.0_292]
at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1361) [rt.jar:1.8.0_292]
at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) [rt.jar:1.8.0_292]
at java.util.HashMap$ValueSpliterator.tryAdvance(HashMap.java:1649) [rt.jar:1.8.0_292]
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) [rt.jar:1.8.0_292]
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499) [rt.jar:1.8.0_292]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486) [rt.jar:1.8.0_292]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) [rt.jar:1.8.0_292]
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230) [rt.jar:1.8.0_292]
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196) [rt.jar:1.8.0_292]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) [rt.jar:1.8.0_292]
at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:516) [rt.jar:1.8.0_292]
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.checkForExistingForeignKey(AbstractSchemaMigrator.java:473) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:423) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:249) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:114) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1250) [hibernate-core-5.3.20.Final.jar:5.3.20.Final]
... 12 more

Activity

Show:

Sanne Grinovero August 20, 2021 at 10:43 AM

I’m not sure what you’re doing, but the logs show you’re mixing versions of Hibernate ORM: one message is about 5.4.32 while others are about 5.3.20.Final - that’s an invalid configuration, and WildFly doesn’t support ORM series 5.4.x.

So I’ll close this issue as invalid, please open again if you can provide with a reproducer using a single version of ORM.

Andrea Boriero August 20, 2021 at 9:18 AM

Hi can you please provide a failing test? It would be of great help especially to prevent future regressions. Here you can find a template that can help you write a test.

 

Thanks

Rejected

Details

Assignee

Reporter

Worked in

Components

Affects versions

Priority

Created August 19, 2021 at 7:05 AM
Updated August 20, 2021 at 10:44 AM
Resolved August 20, 2021 at 10:43 AM