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() {