From 566e6a32582121822940887dc7b20660c178f756 Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Fri, 21 Dec 2018 09:55:11 +0100 Subject: [PATCH] DATACMNS-1455 - HateoasPageableHandlerMethodArgumentResolver handles Pageable.unpaged() coprrectly. Pageable.unpaged() is now effectively handled like a null value given in the 1.x branch. --- .../HateoasPageableHandlerMethodArgumentResolver.java | 7 +++++++ ...PageableHandlerMethodArgumentResolverUnitTests.java | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/main/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolver.java index 9fcae8a01..3fb97533e 100644 --- a/src/main/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolver.java @@ -28,6 +28,7 @@ import org.springframework.hateoas.TemplateVariable.VariableType; import org.springframework.hateoas.TemplateVariables; import org.springframework.hateoas.mvc.UriComponentsContributor; import org.springframework.lang.Nullable; +import org.springframework.util.Assert; import org.springframework.util.MultiValueMap; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; @@ -104,12 +105,18 @@ public class HateoasPageableHandlerMethodArgumentResolver extends PageableHandle @Override public void enhance(UriComponentsBuilder builder, @Nullable MethodParameter parameter, Object value) { + Assert.notNull(builder, "UriComponentsBuilder must not be null!"); + if (!(value instanceof Pageable)) { return; } Pageable pageable = (Pageable) value; + if (pageable.isUnpaged()) { + return; + } + String pagePropertyName = getParameterNameToUse(getPageParameterName(), parameter); String sizePropertyName = getParameterNameToUse(getSizeParameterName(), parameter); diff --git a/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java b/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java index 2009bedc0..1ecb2051d 100755 --- a/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java +++ b/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java @@ -109,6 +109,16 @@ public class HateoasPageableHandlerMethodArgumentResolverUnitTests assertThat(params.getFirst(resolver.getPageParameterName())).isEqualTo("1"); } + @Test // DATACMNS-1455 + public void enhancesUnpaged() { + + UriComponentsBuilder builder = UriComponentsBuilder.fromPath("/"); + + getResolver().enhance(builder, null, Pageable.unpaged()); + + assertThat(builder).isEqualTo(builder); + } + @Override protected HateoasPageableHandlerMethodArgumentResolver getResolver() {