From bc28a6b094a69f2ff56ecbd7181f4d2f2f47cde9 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Thu, 23 Mar 2017 10:16:54 +0100 Subject: [PATCH] DATACMNS-867 - Improvements in Chunk and PageImpl. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Chunk now rejects null Pageables. Improved total calculation in PageImpl by using ….toOptional(). --- src/main/java/org/springframework/data/domain/Chunk.java | 1 + src/main/java/org/springframework/data/domain/PageImpl.java | 6 +----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/springframework/data/domain/Chunk.java b/src/main/java/org/springframework/data/domain/Chunk.java index 8e6c0c037..00267e349 100644 --- a/src/main/java/org/springframework/data/domain/Chunk.java +++ b/src/main/java/org/springframework/data/domain/Chunk.java @@ -49,6 +49,7 @@ abstract class Chunk implements Slice, Serializable { public Chunk(List content, Pageable pageable) { Assert.notNull(content, "Content must not be null!"); + Assert.notNull(pageable, "Pageable must not be null!"); this.content.addAll(content); this.pageable = pageable; diff --git a/src/main/java/org/springframework/data/domain/PageImpl.java b/src/main/java/org/springframework/data/domain/PageImpl.java index 58b7f08df..9c1970df9 100644 --- a/src/main/java/org/springframework/data/domain/PageImpl.java +++ b/src/main/java/org/springframework/data/domain/PageImpl.java @@ -16,7 +16,6 @@ package org.springframework.data.domain; import java.util.List; -import java.util.Optional; import java.util.function.Function; /** @@ -45,10 +44,7 @@ public class PageImpl extends Chunk implements Page { super(content, pageable); this.pageable = pageable; - - Optional foo = pageable.isPaged() ? Optional.of(pageable) : Optional.empty(); - - this.total = foo.filter(it -> !content.isEmpty())// + this.total = pageable.toOptional().filter(it -> !content.isEmpty())// .filter(it -> it.getOffset() + it.getPageSize() > total)// .map(it -> it.getOffset() + content.size())// .orElse(total);