diff --git a/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java index 6ef5ac48e..7a5f98e52 100644 --- a/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java @@ -246,7 +246,11 @@ public class PageableHandlerMethodArgumentResolver implements HandlerMethodArgum pageSize = pageSize > maxPageSize ? maxPageSize : pageSize; Sort sort = sortResolver.resolveArgument(methodParameter, mavContainer, webRequest, binderFactory); - return new PageRequest(page, pageSize, sort == null ? defaultOrFallback.getSort() : sort); + + // Default if necessary and default configured + sort = sort == null && defaultOrFallback != null ? defaultOrFallback.getSort() : sort; + + return new PageRequest(page, pageSize, sort); } /** diff --git a/src/test/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverUnitTests.java b/src/test/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverUnitTests.java index 03bf85460..2fa3b0715 100644 --- a/src/test/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverUnitTests.java +++ b/src/test/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverUnitTests.java @@ -216,6 +216,26 @@ public class PageableHandlerMethodArgumentResolverUnitTests extends PageableDefa .getPageNumber(), is(0)); } + /** + * @see DATACMNS-640 + */ + @Test + public void usesNullSortIfNoDefaultIsConfiguredAndPageAndSizeAreGiven() { + + PageableHandlerMethodArgumentResolver resolver = getResolver(); + resolver.setFallbackPageable(null); + + MockHttpServletRequest request = new MockHttpServletRequest(); + request.addParameter("page", "0"); + request.addParameter("size", "10"); + + Pageable result = resolver.resolveArgument(supportedMethodParameter, null, new ServletWebRequest(request), null); + + assertThat(result.getPageNumber(), is(0)); + assertThat(result.getPageSize(), is(10)); + assertThat(result.getSort(), is(nullValue())); + } + @Override protected PageableHandlerMethodArgumentResolver getResolver() { PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();