From 3af13c43ec22582b55baf6d191136f3b04f123e7 Mon Sep 17 00:00:00 2001 From: Manousos Mathioudakis Date: Thu, 4 Mar 2021 16:10:51 +0200 Subject: [PATCH] Fix same toString representation for different page instances. Closes #2066 --- .../org/springframework/data/domain/PageImpl.java | 4 +++- .../data/domain/PageImplUnitTests.java | 12 +++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/domain/PageImpl.java b/src/main/java/org/springframework/data/domain/PageImpl.java index 444247ec68..f2563fc283 100644 --- a/src/main/java/org/springframework/data/domain/PageImpl.java +++ b/src/main/java/org/springframework/data/domain/PageImpl.java @@ -26,6 +26,7 @@ * @param the type of which the page consists. * @author Oliver Gierke * @author Mark Paluch + * @author Manousos Mathioudakis */ public class PageImpl extends Chunk implements Page { @@ -120,7 +121,8 @@ public String toString() { contentType = content.get(0).getClass().getName(); } - return String.format("Page %s of %d containing %s instances", getNumber() + 1, getTotalPages(), contentType); + return String.format("Page %s of %d containing %s instances @%s", + getNumber() + 1, getTotalPages(), contentType, Integer.toHexString(hashCode())); } /* diff --git a/src/test/java/org/springframework/data/domain/PageImplUnitTests.java b/src/test/java/org/springframework/data/domain/PageImplUnitTests.java index ead5af8074..1492aee335 100755 --- a/src/test/java/org/springframework/data/domain/PageImplUnitTests.java +++ b/src/test/java/org/springframework/data/domain/PageImplUnitTests.java @@ -29,6 +29,7 @@ * * @author Oliver Gierke * @author Mark Paluch + * @author Manousos Mathioudakis */ class PageImplUnitTests { @@ -191,7 +192,16 @@ void toStringShouldNotInspectNullInstances() { Page page = new PageImpl<>(Collections.singletonList(null)); - assertThat(page).hasToString("Page 1 of 1 containing UNKNOWN instances"); + assertThat(page).hasToString(String.format("Page 1 of 1 containing UNKNOWN instances @%s", Integer.toHexString(page.hashCode()))); } + @Test //issue 2066 + void toStringShouldNotBeEqualsForDifferentPages() { + Page page1 = new PageImpl<>(Arrays.asList("item1", "item2"), PageRequest.of(0, 5), 10); + Page page2 = new PageImpl<>(Arrays.asList("item1", "item3"), PageRequest.of(0, 5), 10); + + assertThat(page1.toString()).isNotEqualTo(page2.toString()); + } + + }