From 7fa997085d2493339b993815365d0881bcf17f7e Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Tue, 6 Oct 2015 07:34:12 +0200 Subject: [PATCH] DATAJPA-585 - Fixed potential NullPointerException in QueryDslJpaRepository. findAll(Predicate, Pageable) now treats null Pageable instances correctly. --- .../jpa/repository/support/QueryDslJpaRepository.java | 2 +- .../repository/support/QueryDslJpaRepositoryTests.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/jpa/repository/support/QueryDslJpaRepository.java b/src/main/java/org/springframework/data/jpa/repository/support/QueryDslJpaRepository.java index cbe350e86..05613f689 100644 --- a/src/main/java/org/springframework/data/jpa/repository/support/QueryDslJpaRepository.java +++ b/src/main/java/org/springframework/data/jpa/repository/support/QueryDslJpaRepository.java @@ -139,7 +139,7 @@ public class QueryDslJpaRepository extends SimpleJpa JPQLQuery query = querydsl.applyPagination(pageable, createQuery(predicate)); Long total = countQuery.count(); - List content = total > pageable.getOffset() ? query.list(path) : Collections. emptyList(); + List content = pageable == null || total > pageable.getOffset() ? query.list(path) : Collections. emptyList(); return new PageImpl(content, pageable, total); } diff --git a/src/test/java/org/springframework/data/jpa/repository/support/QueryDslJpaRepositoryTests.java b/src/test/java/org/springframework/data/jpa/repository/support/QueryDslJpaRepositoryTests.java index ba0ed6f56..7e32479da 100644 --- a/src/test/java/org/springframework/data/jpa/repository/support/QueryDslJpaRepositoryTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/support/QueryDslJpaRepositoryTests.java @@ -29,6 +29,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.domain.Sort.Order; @@ -350,4 +351,12 @@ public class QueryDslJpaRepositoryTests { assertThat(users.get(2).getFirstname(), is(oliver.getFirstname())); assertThat(users, hasItems(carter, dave, oliver)); } + + /** + * @see DATAJPA-585 + */ + @Test + public void worksWithNullPageable() { + assertThat(repository.findAll(user.dateOfBirth.isNull(), (Pageable) null).getContent(), hasSize(3)); + } }