diff --git a/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java index e9361e83a..7b9d5e9b8 100644 --- a/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java @@ -243,7 +243,7 @@ public class SortHandlerMethodArgumentResolver implements HandlerMethodArgumentR } String[] elements = part.split(delimiter); - Direction direction = Direction.fromStringOrNull(elements[elements.length - 1]); + Direction direction = elements.length == 0 ? null : Direction.fromStringOrNull(elements[elements.length - 1]); for (int i = 0; i < elements.length; i++) { diff --git a/src/test/java/org/springframework/data/web/SortHandlerMethodArgumentResolverUnitTests.java b/src/test/java/org/springframework/data/web/SortHandlerMethodArgumentResolverUnitTests.java index 0d5dab5e7..7699bcf26 100644 --- a/src/test/java/org/springframework/data/web/SortHandlerMethodArgumentResolverUnitTests.java +++ b/src/test/java/org/springframework/data/web/SortHandlerMethodArgumentResolverUnitTests.java @@ -186,6 +186,18 @@ public class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitT assertThat(resolveSort(request, PARAMETER), is(new Sort(DESC, "property"))); } + /** + * @see DATACMNS-379 + */ + @Test + public void parsesCommaParameterForSort() throws Exception { + + MockHttpServletRequest request = new MockHttpServletRequest(); + request.addParameter("sort", ","); + + assertThat(resolveSort(request, PARAMETER), is(nullValue())); + } + private static Sort resolveSort(HttpServletRequest request, MethodParameter parameter) throws Exception { SortHandlerMethodArgumentResolver resolver = new SortHandlerMethodArgumentResolver();