diff --git a/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java b/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java index ad91146c7..0ed8cb016 100644 --- a/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java +++ b/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java @@ -257,7 +257,7 @@ public class PagedResourcesAssembler implements RepresentationModelAssembler< * @return */ private UriTemplate getUriTemplate(Optional baseLink) { - return new UriTemplate(baseLink.map(Link::getHref).orElseGet(this::baseUriOrCurrentRequest)); + return UriTemplate.of(baseLink.map(Link::getHref).orElseGet(this::baseUriOrCurrentRequest)); } /** @@ -274,7 +274,7 @@ public class PagedResourcesAssembler implements RepresentationModelAssembler< UriComponentsBuilder builder = fromUri(base.expand()); pageableResolver.enhance(builder, getMethodParameter(), pageable); - return new Link(new UriTemplate(builder.build().toString()), relation); + return new Link(UriTemplate.of(builder.build().toString()), relation); } /** diff --git a/src/main/java/org/springframework/data/web/PagedResourcesAssemblerArgumentResolver.java b/src/main/java/org/springframework/data/web/PagedResourcesAssemblerArgumentResolver.java index 2b9b32085..a72a71917 100644 --- a/src/main/java/org/springframework/data/web/PagedResourcesAssemblerArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/PagedResourcesAssemblerArgumentResolver.java @@ -15,6 +15,7 @@ */ package org.springframework.data.web; +import java.lang.reflect.Method; import java.util.List; import javax.annotation.Nonnull; @@ -106,8 +107,14 @@ public class PagedResourcesAssemblerArgumentResolver implements HandlerMethodArg @Nullable private UriComponents resolveBaseUri(MethodParameter parameter) { + Method method = parameter.getMethod(); + + if (method == null) { + throw new IllegalArgumentException(String.format("Could not obtain method from parameter %s!", parameter)); + } + try { - Link linkToMethod = linkBuilderFactory.linkTo(parameter.getDeclaringClass(), parameter.getMethod()).withSelfRel(); + Link linkToMethod = linkBuilderFactory.linkTo(parameter.getDeclaringClass(), method).withSelfRel(); return UriComponentsBuilder.fromUriString(linkToMethod.getHref()).build(); } catch (IllegalArgumentException o_O) { return null; @@ -124,7 +131,13 @@ public class PagedResourcesAssemblerArgumentResolver implements HandlerMethodArg @Nullable private static MethodParameter findMatchingPageableParameter(MethodParameter parameter) { - MethodParameters parameters = new MethodParameters(parameter.getMethod()); + Method method = parameter.getMethod(); + + if (method == null) { + throw new IllegalArgumentException(String.format("Could not obtain method from parameter %s!", parameter)); + } + + MethodParameters parameters = MethodParameters.of(method); List pageableParameters = parameters.getParametersOfType(Pageable.class); Qualifier assemblerQualifier = parameter.getParameterAnnotation(Qualifier.class);