From 2e4e6ee61faa0657f2d98c2b022cc27cf0a6425b Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Sat, 29 Oct 2016 18:04:46 +0100 Subject: [PATCH] DATACMNS-929 - Fixed NullPointerException in PageableHandlerMethodArgumentResolver. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PageableHandlerMethodArgumentResolver.isFallbackPageable() now correctly guards against the fallback Pageable being null, a situation that's explicitly deemed valid in setFallbackPageable(…). --- .../PageableHandlerMethodArgumentResolver.java | 6 +++--- ...bleHandlerMethodArgumentResolverUnitTests.java | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java index 30258f456..b2bb97880 100644 --- a/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 the original author or authors. + * Copyright 2013-2016 the 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. @@ -95,12 +95,12 @@ public class PageableHandlerMethodArgumentResolver implements HandlerMethodArgum /** * Returns whether the given {@link Pageable} is the fallback one. * - * @param pageable + * @param pageable can be {@literal null}. * @since 1.9 * @return */ public boolean isFallbackPageable(Pageable pageable) { - return this.fallbackPageable.equals(pageable); + return fallbackPageable == null ? false : fallbackPageable.equals(pageable); } /** diff --git a/src/test/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverUnitTests.java b/src/test/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverUnitTests.java index e01c7a422..94ebea534 100644 --- a/src/test/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverUnitTests.java +++ b/src/test/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverUnitTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 the original author or authors. + * Copyright 2013-2016 the 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. @@ -270,6 +270,19 @@ public class PageableHandlerMethodArgumentResolverUnitTests extends PageableDefa assertThat(result.getPageSize(), is(10)); } + /** + * @see DATACMNS-929 + */ + @Test + public void detectsFallbackPageableIfNullOneIsConfigured() { + + PageableHandlerMethodArgumentResolver resolver = getResolver(); + resolver.setFallbackPageable(null); + + assertThat(resolver.isFallbackPageable(null), is(false)); + assertThat(resolver.isFallbackPageable(new PageRequest(0, 10)), is(false)); + } + @Override protected PageableHandlerMethodArgumentResolver getResolver() { PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();