DATACMNS-1827 - Pageable and Sort arguments with empty qualifier value shouldn't be prefixed with delimiter.
Original pull request: #473.
This commit is contained in:
committed by
Mark Paluch
parent
1d146da048
commit
e758dd3a84
@@ -230,7 +230,7 @@ public abstract class PageableHandlerMethodArgumentResolverSupport {
|
||||
|
||||
Qualifier qualifier = parameter == null ? null : parameter.getParameterAnnotation(Qualifier.class);
|
||||
|
||||
if (qualifier != null) {
|
||||
if (qualifier != null && StringUtils.hasLength(qualifier.value())) {
|
||||
builder.append(qualifier.value());
|
||||
builder.append(qualifierDelimiter);
|
||||
}
|
||||
|
||||
@@ -186,8 +186,9 @@ public abstract class SortHandlerMethodArgumentResolverSupport {
|
||||
|
||||
Qualifier qualifier = parameter != null ? parameter.getParameterAnnotation(Qualifier.class) : null;
|
||||
|
||||
if (qualifier != null) {
|
||||
builder.append(qualifier.value()).append(qualifierDelimiter);
|
||||
if (qualifier != null && StringUtils.hasLength(qualifier.value())) {
|
||||
builder.append(qualifier.value());
|
||||
builder.append(qualifierDelimiter);
|
||||
}
|
||||
|
||||
return builder.append(sortParameter).toString();
|
||||
|
||||
@@ -35,6 +35,7 @@ import org.springframework.web.context.request.ServletWebRequest;
|
||||
*
|
||||
* @author Oliver Gierke
|
||||
* @author Nick Williams
|
||||
* @author Vedran Pavic
|
||||
*/
|
||||
class PageableHandlerMethodArgumentResolverUnitTests extends PageableDefaultUnitTests {
|
||||
|
||||
@@ -244,6 +245,18 @@ class PageableHandlerMethodArgumentResolverUnitTests extends PageableDefaultUnit
|
||||
assertThat(resolver.isFallbackPageable(PageRequest.of(0, 10))).isFalse();
|
||||
}
|
||||
|
||||
@Test // DATACMNS-1827
|
||||
void emptyQualifierIsUsedInParameterLookup() throws Exception {
|
||||
|
||||
MethodParameter parameter = new MethodParameter(Sample.class.getMethod("emptyQualifier", Pageable.class), 0);
|
||||
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.addParameter("page", "2");
|
||||
request.addParameter("size", "10");
|
||||
|
||||
assertSupportedAndResult(parameter, PageRequest.of(2, 10), request);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected PageableHandlerMethodArgumentResolver getResolver() {
|
||||
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
|
||||
@@ -283,5 +296,7 @@ class PageableHandlerMethodArgumentResolverUnitTests extends PageableDefaultUnit
|
||||
void validQualifier(@Qualifier("foo") Pageable pageable);
|
||||
|
||||
void noQualifiers(Pageable first, Pageable second);
|
||||
|
||||
void emptyQualifier(@Qualifier Pageable pageable);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@ import org.springframework.web.context.request.ServletWebRequest;
|
||||
* @author Thomas Darimont
|
||||
* @author Nick Williams
|
||||
* @author Mark Paluch
|
||||
* @author Vedran Pavic
|
||||
*/
|
||||
class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitTests {
|
||||
|
||||
@@ -241,6 +242,15 @@ class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitTests {
|
||||
});
|
||||
}
|
||||
|
||||
@Test // DATACMNS-1827
|
||||
void emptyQualifierIsUsedInParameterLookup() {
|
||||
|
||||
MethodParameter parameter = getParameterOfMethod("emptyQualifier");
|
||||
Sort reference = Sort.by("bar", "foo");
|
||||
|
||||
assertSupportedAndResolvedTo(getRequestWithSort(reference, ""), parameter, reference);
|
||||
}
|
||||
|
||||
private static Sort resolveSort(HttpServletRequest request, MethodParameter parameter) throws Exception {
|
||||
|
||||
SortHandlerMethodArgumentResolver resolver = new SortHandlerMethodArgumentResolver();
|
||||
@@ -306,5 +316,7 @@ class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitTests {
|
||||
void containeredDefault(@SortDefaults(@SortDefault({ "foo", "bar" })) Sort sort);
|
||||
|
||||
void invalid(@SortDefaults(@SortDefault({ "foo", "bar" })) @SortDefault({ "bar", "foo" }) Sort sort);
|
||||
|
||||
void emptyQualifier(@Qualifier Sort sort);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user