diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwarePageableArgumentResolver.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwarePageableArgumentResolver.java index f90497ce7..c1830f280 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwarePageableArgumentResolver.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwarePageableArgumentResolver.java @@ -65,11 +65,12 @@ public class MappingAwarePageableArgumentResolver implements HandlerMethodArgume Pageable pageable = delegate.resolveArgument(methodParameter, mavContainer, webRequest, binderFactory); - if (pageable == null || pageable.getSort() == null) { + if (pageable.isUnpaged() || pageable.getSort().isUnsorted()) { return pageable; } Sort translated = translator.translateSort(pageable.getSort(), methodParameter, webRequest); + return PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), translated); } } diff --git a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/json/MappingAwarePageableArgumentResolverUnitTests.java b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/json/MappingAwarePageableArgumentResolverUnitTests.java index 27127bf94..cdfca48b1 100755 --- a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/json/MappingAwarePageableArgumentResolverUnitTests.java +++ b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/json/MappingAwarePageableArgumentResolverUnitTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 original author or authors. + * Copyright 2016-2019 original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,6 +37,7 @@ import org.springframework.web.method.support.ModelAndViewContainer; * Unit tests for {@link MappingAwarePageableArgumentResolver}. * * @author Mark Paluch + * @author Oliver Drotbohm */ @RunWith(MockitoJUnitRunner.class) public class MappingAwarePageableArgumentResolverUnitTests { @@ -82,14 +83,17 @@ public class MappingAwarePageableArgumentResolverUnitTests { assertThat(result.getPageSize()).isEqualTo(1); assertThat(result.getPageNumber()).isEqualTo(0); - assertThat(result.getSort()).isNull(); + assertThat(result.getSort().isUnsorted()).isTrue(); } @Test // DATAREST-906 - public void resolveArgumentShouldReturnNoPageable() throws Exception { + public void resolveArgumentShouldReturnUnpagedPageable() throws Exception { + + when(delegate.resolveArgument(parameter, modelAndViewContainer, webRequest, binderFactory)) + .thenReturn(Pageable.unpaged()); Pageable result = resolver.resolveArgument(parameter, modelAndViewContainer, webRequest, binderFactory); - assertThat(result).isNull(); + assertThat(result.isUnpaged()).isTrue(); } }