From b55427e44d11366f160649b0525f6b9014e4c1fe Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Wed, 9 Jun 2021 10:11:34 +0200 Subject: [PATCH 1/2] Fix build failures with Java 16. A few test that used reflection to access the actual SQL executed by a Query object failed with `java.lang.reflect.InaccessibleObjectException: Unable to make field protected java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.h accessible: module java.base does not "opens java.lang.reflect" to unnamed module @1b9e1916`. This change replaces the reflection used by a proper call to `unwrap` --- .../query/PartTreeJpaQueryIntegrationTests.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java b/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java index 336ca0d0a6..69afb6a598 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java @@ -33,10 +33,10 @@ import javax.persistence.TemporalType; import org.hibernate.Version; +import org.hibernate.query.internal.QueryImpl; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; - import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -107,11 +107,11 @@ void recreatesQueryIfNullValueIsGiven() throws Exception { Query query = jpaQuery.createQuery((getAccessor(queryMethod, new Object[] { "Matthews", PageRequest.of(0, 1) }))); - assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY))).endsWith("firstname=:param0"); + assertThat(HibernateUtils.getHibernateQuery(query.unwrap(QueryImpl.class))).endsWith("firstname=:param0"); query = jpaQuery.createQuery((getAccessor(queryMethod, new Object[] { null, PageRequest.of(0, 1) }))); - assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY))).endsWith("firstname is null"); + assertThat(HibernateUtils.getHibernateQuery(query.unwrap(QueryImpl.class))).endsWith("firstname is null"); } @Test // DATAJPA-920 @@ -133,7 +133,7 @@ void shouldSelectAliasedIdForExistsProjectionQueries() throws Exception { Query query = jpaQuery.createQuery((getAccessor(queryMethod, new Object[] { "Matthews" }))); - assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY))).contains(".id from User as"); + assertThat(HibernateUtils.getHibernateQuery(query.unwrap(QueryImpl.class))).contains(".id from User as"); } @Test // DATAJPA-1074 @@ -144,7 +144,7 @@ void isEmptyCollection() throws Exception { Query query = jpaQuery.createQuery((getAccessor(queryMethod, new Object[] {}))); - assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY))).endsWith("roles is empty"); + assertThat(HibernateUtils.getHibernateQuery(query.unwrap(QueryImpl.class))).endsWith("roles is empty"); } @Test // DATAJPA-1074 @@ -155,7 +155,7 @@ void isNotEmptyCollection() throws Exception { Query query = jpaQuery.createQuery((getAccessor(queryMethod, new Object[] {}))); - assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY))).endsWith("roles is not empty"); + assertThat(HibernateUtils.getHibernateQuery(query.unwrap(QueryImpl.class))).endsWith("roles is not empty"); } @Test // DATAJPA-1074 From 3963e5e2bf5abc9939e5010a37dbd7f31c9c0ca2 Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Wed, 9 Jun 2021 10:12:23 +0200 Subject: [PATCH 2/2] jdk16-fialure - Prepare branch --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index aefb6b09e1..05266a2c93 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.data spring-data-jpa - 2.6.0-SNAPSHOT + 2.6.0-jdk16-fialure-SNAPSHOT Spring Data JPA Spring Data module for JPA repositories.