DB2zDialect NullPointerException

Description

Caused by: java.lang.NullPointerException: Cannot invoke "String.isEmpty()" because "rowId" is null at org.hibernate.dialect.DB2zDialect.rowId(DB2zDialect.java:229) at org.hibernate.dialect.Dialect.registerColumnTypes(Dialect.java:444) at org.hibernate.dialect.DB2Dialect.registerColumnTypes(DB2Dialect.java:209) at org.hibernate.dialect.Dialect.contributeTypes(Dialect.java:1580) at org.hibernate.dialect.DB2Dialect.contributeTypes(DB2Dialect.java:900) at org.hibernate.dialect.Dialect.contribute(Dialect.java:1569) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:630) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:174) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1383) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1454) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:376) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:352) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1817) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1766)

DB2zDialect:

<dependency> <groupId>com.ibm.db2.jdbc</groupId> <artifactId>db2jcc4</artifactId> <version>4.25.23</version> <scope>provided</scope> </dependency>

is duplicated by

Activity

Show:

Vieira, Adriano (CORP) October 24, 2023 at 3:03 PM
Edited

This is a breakage starting on hibernate-core:6.2.11 where a NullPointerException is thrown on DB2zDialect (and probably others).

Commit 76b2f92 https://hibernate.atlassian.net/browse/HHH-15958 (first seems on hibernate-core:6.2.0.CR2) changes lacks null-checks creating conditions for a NPE on DB2zDialect.java#L229.

Commit cb0aad7 https://hibernate.atlassian.net/browse/HHH-17276 (first seems on hibernate-core:6.2.11) introduces code that realizes the potential NPE condition on Dialect.java#L449

Matt Henry October 23, 2023 at 11:45 PM

This completely breaks DB2 zOS. Assuming that rowId() should return “_rowId” if either null or empty in DB2zDialect.

Fixed

Details

Assignee

Reporter

Worked in

Fix versions

Affects versions

Priority

Created October 20, 2023 at 11:19 AM
Updated July 2, 2024 at 8:24 AM
Resolved October 30, 2023 at 3:38 PM

Flag notifications